예제 #1
0
 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);
 }
예제 #2
0
 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)
         };
 }
예제 #3
0
 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);
     }
 }