/// <summary> /// Сброс сессии для пользователя. /// </summary> public virtual void Logout() { Logger.Info(String.Format("Сессия пользователя {0} сброшена.", UserCredential.Login)); ActualDataAccessor.Clear(); PermanentDataAccessor.Clear(); ActualDataAccessor.Write(DefaultUserCredentialName, DefaultUserCredential); }
/// <summary> /// Вход пользователя. /// </summary> /// <param name="login">Логин.</param> /// <param name="password">Пароль.</param> /// <param name="rememberMe">Запоминить?</param> /// <returns>Результат авторизации.</returns> public virtual bool Login(string login, string password, bool rememberMe = false) { Logger.Info(String.Format("Попытка авторизации пользователя: Логин - {0}, Пароль - {1}, Запоминать? - {2}.", login, password, rememberMe)); User user = Get <IUserRepository>().GetByLoginAndPassword(login, password); if (user != null) { var credential = new UserCredential { Login = user.Login, Role = user.Role.Name, IsAuthorization = true, IsRemember = rememberMe, IsQuickUser = false }; ActualDataAccessor.Write(DefaultUserCredentialName, credential); if (rememberMe) { RememberMe(); } } Logger.Info(String.Format("Результат авторизации пользователя {0} - {1} .", login, UserCredential.IsAuthorization)); return(user != null); }
/// <summary> /// Восстановление запомненной сессии. /// </summary> public virtual void RestoreRememberSession() { UserCredential credential = PermanentDataAccessor.Read("remember"); User user = Get <IUserRepository>().GetByLogin(credential.Login); if (user != null) { ActualDataAccessor.Write(DefaultUserCredentialName, credential); } Logger.Info(String.Format("Для пользователя {0} была восстановлена запомненная сессия.", UserCredential.Login)); }
/// <summary> /// Быстрая авторизация пользователя по имени, фамилии, дате рождения и полюсу. /// </summary> /// <param name="firstName">Имя.</param> /// <param name="lastName">Фамилия.</param> /// <param name="birthday">День рождения.</param> /// <param name="policy">Полюс.</param> /// <returns>Результат авторизации.</returns> public bool QuickLogin(string firstName, string lastName, DateTime birthday, string policy) { Patient patient = Get <IPatientRepository>().FindByFirstNameAndLastNameAndBirthdayAndPolicy(firstName, lastName, birthday, policy); if (patient != null) { ActualDataAccessor.Write(DefaultUserCredentialName, new UserCredential { IsAuthorization = true, IsRemember = false, Login = patient.Login, Role = DefaultRoles.QuickLogin, IsQuickUser = true }); Logger.Info(String.Format("Пользователь {0} {1} совершил быстрый вход в систему.", patient.Id, patient.FullName)); return(true); } return(false); }