Example #1
0
        /// <summary>
        /// Получение Учетных данных на основании сущности из БД
        /// </summary>
        /// <param name="user">Сущность пользователь в БД</param>
        /// <returns>MembershipUser соответсвующий исходному User</returns>
        protected MembershipUser GetUser(Users user)
        {
            if (user == null || user.Deleted != null)
                return null;

            return new MembershipUser(Name
                                      , user.Login
                                      , user.User_id
                                      , user.Email
                                      , user.PasswordQuestion
                                      , user.Description
                                      , user.Activated
                                      , user.Blocked
                                      , user.Created
                                      , user.LastLoginDateTime ?? DateTime.MinValue
                                      , user.LastActivityDateTime ?? DateTime.MinValue
                                      , user.LastPasswordChangedDateTime ?? DateTime.MinValue
                                      , user.LastLockOutDateTime ?? DateTime.MinValue);
        }
Example #2
0
        /// <summary>
        /// Создает пользователя в БД
        /// </summary>
        /// <param name="username">Имя пользователя</param>
        /// <param name="password">Пароль пользователя</param>
        /// <param name="email">Email пользователя</param>
        /// <param name="passwordQuestion">Вопрос для восстановления пароля</param>
        /// <param name="passwordAnswer">Ответ для восстановления пароля</param>
        /// <param name="isApproved">Активирована ли учетная запись пользователя</param>
        /// <param name="providerUserKey">Идентификатор пользователя</param>
        /// <param name="status">Результат попытки создания пользователя</param>
        /// <returns>Учетные данные пользователя</returns>
        public override MembershipUser CreateUser(string username, string password, string email,
            string passwordQuestion, string passwordAnswer,
            bool isApproved, object providerUserKey,
            out MembershipCreateStatus status)
        {
            using (var context = new TicTacToeEntities())
            {
                try
                {
                    if (!ValidateLogin(username))
                    {
                        status = MembershipCreateStatus.InvalidUserName;
                        return null;
                    }

                    if (context.Users.Any(x=>x.Login == username))
                    {
                        status = MembershipCreateStatus.DuplicateUserName;
                        return null;
                    }

                    if (!ValidateEmail(email))
                    {
                        status = MembershipCreateStatus.InvalidEmail;
                        return null;
                    }

                    if (RequiresUniqueEmail && context.Users.Any(x => x.Email == email))
                    {
                        status = MembershipCreateStatus.DuplicateEmail;
                        return null;
                    }

                    var user = new Users
                                   {
                                       Login = username,
                                       PassHash = Common.EncryptPasswordSHA256(password),
                                       Email = email,
                                       Activated = !RequireActivation || isApproved,
                                       Roles = (int) RoleProvider.Roles.User,
                                       Created = DateTime.Now,
                                       PasswordQuestion = passwordQuestion,
                                       PasswordAnswer = passwordAnswer
                                   };
                    context.Users.Add(user);
                    context.SaveChanges();
                    status = MembershipCreateStatus.Success;
                    return GetUser(user);
                }
                catch (Exception ex)
                {
                    this.GetLog().Error("User creation error", ex);
                    status = MembershipCreateStatus.ProviderError;
                    return null;
                }
            }
        }