protected void Application_AuthenticateRequest(object sender, EventArgs e) { if (HttpContext.Current.User != null) { if (HttpContext.Current.User.Identity.AuthenticationType == "Forms") { //--get the ticket System.Web.Security.FormsIdentity id = (System.Web.Security.FormsIdentity)HttpContext.Current.User.Identity; FormsAuthenticationTicket ticket = id.Ticket; //--get the stored user data spliced (User Id|User Role) string[] userData = ticket.UserData.Split('|'); string userId = userData[0]; string userName = userData[1]; string userFirst = userData[2]; string userLast = userData[3]; string userEmail = userData[4]; if (userData.Length >= 6) { GroupRoleEnum userRole = GroupRoleEnum.member; try { userRole = EnumExtensions.EnumParse <GroupRoleEnum>(userData[5]); } catch (Exception) { } RaceDayUser user = new RaceDayUser(id, userId, userRole, userName, userFirst, userLast, userEmail, ticket.IsPersistent); HttpContext.Current.User = user; } } } }
public static void LoginUser(AuthResult user, Boolean persistent) { // Expiration date/time as determiend by the Remember Me checkbox // DateTime expires = DateTime.Now.AddHours(8); if (persistent) { expires = DateTime.Now.AddYears(1); } // Create the .NET authorization ticket // var authTicket = new FormsAuthenticationTicket(1, user.token, DateTime.Now, expires, persistent, user.userid + "|" + user.name + "|" + user.firstname + "|" + user.lastname + "|" + user.email + "|" + user.role); string encryptedTicket = FormsAuthentication.Encrypt(authTicket); var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); if (persistent) { authCookie.Expires = authTicket.Expiration; } System.Web.HttpContext.Current.Response.Cookies.Add(authCookie); // Create the user before the next request is made // GroupRoleEnum userRole = GroupRoleEnum.member; try { userRole = EnumExtensions.EnumParse <GroupRoleEnum>(user.role); } catch (Exception) { } RaceDayUser webUser = new RaceDayUser(new FormsIdentity(authTicket), user.userid, (GroupRoleEnum)user.role, user.name, user.firstname, user.lastname, user.email, persistent); HttpContext.Current.User = webUser; }