Willcode4cash icon

Forms Authenication

Willcode4cash | PRO | 08/15/16 03:52:09 AM UTC | 0 ⭐ | 221 👁️ | Never ⏰ | []
C# |

1.34 KB

|

None

|

0 👍

/

0 👎

/*
 *  Located in Global.asax.cs
 */
 
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
        var userData
 
        if (HttpContext.Current.User == null) return;
        if (!HttpContext.Current.User.Identity.IsAuthenticated) return;
        var id = HttpContext.Current.User.Identity as FormsIdentity;
        if (id == null) return;
 
        FormsAuthenticationTicket ticket = id.Ticket;
        string userData = ticket.UserData;
        string[] roles = userData.Split(',');
        HttpContext.Current.User = new GenericPrincipal(id, roles);
}
 
/*
 *  Located in an accessible extension class
 */
 
public static bool BuildCookie(this Userprofile userprofile, bool remember = true)
{
    try
    {
        var roles = "A comma delimited string of roles";
 
        FormsAuthentication.Initialize();
        var ticket = new FormsAuthenticationTicket(1, 
            userprofile.UserprofileID.ToString(), 
            DateTime.Now,
            DateTime.Now.AddDays(90),
            remember,
            roles,
            FormsAuthentication.FormsCookiePath);
 
        var hashedTicket = FormsAuthentication.Encrypt(ticket);
        var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashedTicket);
        if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
        HttpContext.Current.Response.Cookies.Add(cookie);
        return true;
    } catch (Exception)
    {
        return false;
    }
}

Comments