/// <summary> /// Occurs when a security module has established the identity of the user /// </summary> /// <param name="sender"></param> /// <param name="e"></param> 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(); UserPrincipalSerializeModel serializeUser = serializer.Deserialize <UserPrincipalSerializeModel>(authTicket.UserData); _logger.Debug($"authTicket: { authTicket.UserData }"); if (serializeUser != null) { User user = new User { Id = serializeUser.Id, Login = serializeUser.Login, Email = serializeUser.Email, UserRole = serializeUser.UserRole }; _logger.Debug($"User: id = { user.Id }, login = { user.Login }, e-mail = { user.Email }, role = { user.UserRole }"); CurrentUser newUser = new CurrentUser(user, serializeUser.UserProfileId, serializeUser.PriceLevelId); _logger.Debug($"User Data: ProfileId = { serializeUser.UserProfileId }, price level = { serializeUser.PriceLevelId }"); HttpContext.Current.User = newUser; } } }
public HttpResponseMessage Login(LoginBindingModel model) { var user = repository.FindByPredicate(u => u.Login == model.Login && u.Password == model.Password); if (ReferenceEquals(user, null)) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } UserPrincipalSerializeModel serializeModel = new UserPrincipalSerializeModel(); serializeModel.Login = user.Login; JavaScriptSerializer serializer = new JavaScriptSerializer(); string userData = serializer.Serialize(serializeModel); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, model.Login, DateTime.Now, DateTime.Now.AddDays(1), false, userData); string encTicket = FormsAuthentication.Encrypt(authTicket); var cookie = new CookieHeaderValue(FormsAuthentication.FormsCookieName, encTicket); response = Request.CreateResponse(HttpStatusCode.OK); response.Headers.AddCookies(new CookieHeaderValue[] { cookie }); return(response); }
/// <summary> /// Get HttpCookies for authentication /// </summary> /// <param name="user"></param> /// <param name="isPersistent"></param> /// <param name="expires"></param> private HttpCookie GetAuthCookies(UserPrincipalSerializeModel user, bool isPersistent, int expires = 1440) { if (user == null) { throw new ArgumentException("user"); } JavaScriptSerializer serializer = new JavaScriptSerializer(); string cookiesData = serializer.Serialize(user); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( 1, user.Login, DateTime.Now, DateTime.Now.AddMinutes(expires), isPersistent, cookiesData, FormsAuthentication.FormsCookiePath); string encTicket = FormsAuthentication.Encrypt(ticket); var cookies = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); if (ticket.IsPersistent) { cookies.Expires = ticket.Expiration; } return(cookies); }
/// <summary> /// /// </summary> /// <param name="useridentity">User login or email</param> /// <param name="password"></param> /// <param name="redirect"></param> public void LogIn(string useridentity, string password, HttpContext context, bool redirect) { if (useridentity == null) { throw new ArgumentException("useridentity"); } if (password == null) { throw new ArgumentException("password"); } User user = GetUser(useridentity); if (user != null) { if (!user.Password.Equals(PasswordEncryptor.GetHashString(password), StringComparison.OrdinalIgnoreCase)) { throw new UserValidationException("Неверный пароль", "Password"); } UserData userData; using (var repository = _factory.GetUserDataRepository()) { userData = repository.FirstOrDefault(u => u.User.Id == user.Id); } UserPrincipalSerializeModel userPrincipal = new UserPrincipalSerializeModel { Id = user.Id, Login = user.Login, Email = user.Email, UserRole = user.UserRole, UserProfileId = userData.Id, PriceLevelId = userData.PriceLevelId }; if (!user.ConfirmedEmail) { throw new UserValidationException("Не подтвержден email", ""); } context.Response.Cookies.Add(GetAuthCookies(userPrincipal, redirect)); } else { throw new UserValidationException("Неверный логин", "Useridentity"); } //return new CurrentUser(user); }
protected void Application_PostAuthenticateRequest(Object sender, EventArgs e) { HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie != null && authCookie.Value != "") { FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); JavaScriptSerializer serializer = new JavaScriptSerializer(); UserPrincipalSerializeModel serializeModel = serializer.Deserialize <UserPrincipalSerializeModel>(authTicket.UserData); UserPrincipal newUser = new UserPrincipal(authTicket.Name); newUser.Login = serializeModel.Login; HttpContext.Current.User = newUser; } }
public ActionResult Index(string email, string pass) { var user = database.Accounts.Where(u => u.Email == email).FirstOrDefault(); if (user != null) { string hashstring = Cryptography.HashPassword(pass); string HashPassword = Cryptography.HashString(hashstring, user.Salt); if (user.HashPassword == HashPassword) { UserPrincipalSerializeModel serializeModel = new UserPrincipalSerializeModel(); serializeModel.Id = user.ID; serializeModel.FirstName = user.FirstName; serializeModel.LastName = user.LastName; JavaScriptSerializer serializer = new JavaScriptSerializer(); string userData = serializer.Serialize(serializeModel); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, email, DateTime.Now, DateTime.Now.AddMinutes(15), false, userData); string encTicket = FormsAuthentication.Encrypt(authTicket); HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); Response.Cookies.Add(faCookie); return(RedirectToAction("Index", "admin")); } else { return(RedirectToAction("Index", "account")); } } else { return(RedirectToAction("Index", "account")); } }
public ActionResult Login(LoginUserViewModel userlog) { if (userlog.UserName != null && userlog.Password != null) { var user = this._userService.LoginUser(userlog.UserName, userlog.Password); if (user != null) { var serializeModel = new UserPrincipalSerializeModel { Id = user.Id, Login = user.Login, Email = user.Email, CurrentRole = user.Role }; var serializer = new JavaScriptSerializer(); var userData = serializer.Serialize(serializeModel); var authTicket = new FormsAuthenticationTicket( 1, user.Email, DateTime.Now, DateTime.Now.AddMinutes(60), false, userData); var encTicket = FormsAuthentication.Encrypt(authTicket); var facookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); Response.Cookies.Add(facookie); return(this.RedirectToAction("CategoryProducts", "Category")); } } ViewBag.AuthenticationFailedMessage = true; return(this.View("LogIn")); }