private void CreateCookie(User currentUser) { LogInData currLogin = this.accountService.GetUserLogInData(currentUser.Id); string currentUserRole = this.accountService.GetRoleById(currentUser.RoleId).Name; FormsAuthenticationTicket authorizationTicket = new FormsAuthenticationTicket(1, currLogin.Login, DateTime.Now, DateTime.Now.AddMinutes(Constants.MinutesToCookiesExpirate), true, currentUserRole); string encryptedTicket = FormsAuthentication.Encrypt(authorizationTicket); HttpCookie authorizationCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); HttpContext.Response.Cookies.Add(authorizationCookie); }
public LogInData GenerateUserLoginData(User user, IEmailSenderService emailSender) { string userLogin = this.GenerateLogin(user), userPassword = this.GeneratePassword(), salt = this.CreateSalt(); string message = string.Format(Constants.EmailMessage + "\nЛогін: " + userLogin + "\nПароль: " + userPassword); emailSender.SendMail(user.Email, message); return new LogInData { Login = userLogin, PasswordSalt = salt, PasswordHash = this.CreateHashPassword(userPassword, salt) }; }
public string GenerateLogin(User user) { string convertionString = Unidecoder.Unidecode(string.Format(user.LastName + user.FirstName.Substring(0, 1) + user.RoleId)).ToLower(); try { if (this.unitOfWork.LogInDataRepository.Get(exp => exp.Login == convertionString).Login != convertionString) return convertionString; else throw new Exception("login " + convertionString + " is already exist"); } catch { return convertionString + new Random().Next(9); } }