protected void Application_PostAuthenticateRequest(Object sender, EventArgs e) { HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie != null) { FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); JavaScriptSerializer serializer = new JavaScriptSerializer(); StudentPrincipleSerializeModel serializeModel = serializer.Deserialize <StudentPrincipleSerializeModel>(authTicket.UserData); StudentPrincipal newUser = new StudentPrincipal(authTicket.Name); newUser.Id = serializeModel.Id; newUser.Username = serializeModel.Username; HttpContext.Current.User = newUser; } }
public virtual Student GetAuthenticatedCustomerFromTicket(FormsAuthenticationTicket ticket) { if (ticket == null) { throw new ArgumentNullException("ticket"); } JavaScriptSerializer serializer = new JavaScriptSerializer(); StudentPrincipleSerializeModel serializeModel = serializer.Deserialize <StudentPrincipleSerializeModel>(ticket.UserData); var usernameOrEmail = serializeModel.Username; if (String.IsNullOrWhiteSpace(usernameOrEmail)) { return(null); } var student = _studentService.GetStudentByUsername(usernameOrEmail); return(student); }
public void SignIn(Student student, bool createPersistentCookie) { var webWorkContect = DependencyResolver.Current.GetService <IWorkContext>(); var now = DateTime.UtcNow.ToLocalTime(); var serializeModel = new StudentPrincipleSerializeModel { Id = student.Id, Username = student.Username, Roles = student.StudentRoles }; var serializer = new JavaScriptSerializer(); var userData = serializer.Serialize(serializeModel); var ticket = new FormsAuthenticationTicket( 1 /*version*/, student.Username, now, createPersistentCookie ? now.AddDays(7) : now.Add(_expirationTimeSpan), createPersistentCookie, userData); var encryptedTicket = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); cookie.HttpOnly = true; if (ticket.IsPersistent) { cookie.Expires = ticket.Expiration; } cookie.Secure = FormsAuthentication.RequireSSL; cookie.Path = FormsAuthentication.FormsCookiePath; if (FormsAuthentication.CookieDomain != null) { cookie.Domain = FormsAuthentication.CookieDomain; } _httpContext.Response.Cookies.Add(cookie); _cachedStudent = student; }