How to Create FormAuthentication

In this article you will learn how to Create FormAuthentication in Windows Forms.


This Class is useful for Creating FormAuthentication.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.NetworkInformation;
using System.Management;
using System.Security.Principal;

namespace AIMS_Shared
{
    public class FormAuthentication
    {
        public FormAuthentication()
        {
        }

        #region ::This Method is use for creating Formauthentication ticket and cookie::
        public void CreateFormAuthenticationTicket(string userid, string UserData, HttpResponse httpResponse)
        {
            // Create a new ticket used for authentication
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
            1, // Ticket version
            userid, // Username to be associated with this ticket
            DateTime.Now, // Date/time issued
            DateTime.Now.AddHours(14), // Date/time to expire
            true, // "true" for a persistent user cookie (could be a checkbox on form)
            UserData, // User-data (the roles from this user record in our database)
            FormsAuthentication.FormsCookiePath);
// Path cookie is valid for

            // Hash the cookie for transport over the wire
            string hash = FormsAuthentication.Encrypt(ticket);
            HttpCookie cookie = new HttpCookie(
            FormsAuthentication.FormsCookieName, // Name of auth cookie (it's the name specified in web.config)
             hash);
// Hashed ticket

            cookie.Expires = DateTime.Now.AddHours(14);
           
            httpResponse.Cookies.Add(cookie);             

        }
        #endregion

        #region ::This function is use for geting user identity information ::
        public string GetIdentity(System.Security.Principal.IIdentity iIdentity)
        {
            string userData = "";
            FormsIdentity id = (FormsIdentity)iIdentity;
            FormsAuthenticationTicket ticket = id.Ticket;
            userData = ticket.UserData;
            return userData;
        }
        #endregion

        public string GetCurrentSystemMACAddress()
        {           
            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc = mc.GetInstances();
            string MACAddress = String.Empty;
            foreach (ManagementObject mo in moc)
            {
                if (MACAddress == String.Empty) // only return MAC Address from first card
                {
                    if ((bool)mo["IPEnabled"] == true) MACAddress = mo["MacAddress"].ToString();
                }
                mo.Dispose();
            }

            MACAddress = MACAddress.Replace(":", "");
            return MACAddress;           

        }

        public string GetCookieValue(HttpContext Context)
        {
            string CookieValue = string.Empty;
            // Get the authentication cookie
            string cookieName = FormsAuthentication.FormsCookieName;
            HttpCookie authCookie = Context.Request.Cookies[cookieName];
            // If the cookie can't be found, don't issue the ticket
           
// if (authCookie == null) return;

            // Get the authentication ticket and rebuild the principal
            // & identity
            FormsAuthenticationTicket authTicket =
              FormsAuthentication.Decrypt(authCookie.Value);
            string[] roles = authTicket.UserData.Split(new Char[] { '|' });
            //GenericIdentity userIdentity =
            //  new GenericIdentity(authTicket.Name);
            //GenericPrincipal userPrincipal =
            //  new GenericPrincipal(userIdentity, roles);
            //Context.User = userPrincipal;
            CookieValue = roles.ToString();
            return CookieValue;
        }
    }
}

You must Add  In your  web.config file.

<authentication mode="Forms">
      <forms name="FormsAuthDB.AspxAuth" loginUrl="UserLogin.aspx" protection="All" path="/"/>
    </authentication>