コード例 #1
0
 /// <summary>
 /// Сброс сессии для пользователя.
 /// </summary>
 public virtual void Logout()
 {
     Logger.Info(String.Format("Сессия пользователя {0} сброшена.", UserCredential.Login));
     ActualDataAccessor.Clear();
     PermanentDataAccessor.Clear();
     ActualDataAccessor.Write(DefaultUserCredentialName, DefaultUserCredential);
 }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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));
        }
コード例 #4
0
        /// <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);
        }