Ejemplo n.º 1
0
        public override string GetPassword(string username, string answer)
        {
            string password = null;

            if (!EnablePasswordRetrieval)
            {
                throw NhibernateMembershipProviderExceptionUtil.NewProviderException(this,
                                                                                     NHibernateProviderSR.
                                                                                     Pwd_RetrievalNotEnabled);
            }
            if (MembershipPasswordFormat.Hashed == PasswordFormat)
            {
                throw NhibernateMembershipProviderExceptionUtil.NewProviderException(this,
                                                                                     NHibernateProviderSR.
                                                                                     Pwd_CannotRetrieveHashed);
            }
            SystemUserWrapper user = SystemUserWrapper.GetUserByLoginID(username);

            if (user != null)
            {
                if (RequiresQuestionAndAnswer && !CheckPassword(answer, user.PasswordAnswer, user.PasswordSalt))
                {
                    UpdateFailureCount(username, FailureType.PasswordAnswer);
                    throw new MembershipPasswordException(
                              NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this,
                                                                                               NHibernateProviderSR.
                                                                                               Pwd_IncorrectAnswer));
                }
                if (MembershipPasswordFormat.Encrypted == PasswordFormat)
                {
                    password = UnencodePassword(password);
                }
            }
            return(password);
        }
Ejemplo n.º 2
0
        public override bool ChangePasswordQuestionAndAnswer(string username, string password,
                                                             string newPasswordQuestion, string newPasswordAnswer)
        {
            bool flag = false;

            if (ValidateUser(username, password))
            {
                SystemUserWrapper user = SystemUserWrapper.GetUserByLoginID(username);
                if (user == null)
                {
                    return(flag);
                }
                try
                {
                    user.PasswordQuestion = newPasswordQuestion;
                    user.PasswordAnswer   = EncodePassword(newPasswordAnswer, user.PasswordSalt);
                    user.LastActivityDate = DateTime.Now;
                    SystemUserWrapper.Update(user);
                    flag = true;
                }
                catch
                {
                    throw new MembershipPasswordException(
                              NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this,
                                                                                               NHibernateProviderSR.
                                                                                               Pwd_UnableToChangeQandA));
                }
            }
            return(flag);
        }
Ejemplo n.º 3
0
        public bool ChangePassword(string username, string newPassword)
        {
            bool flag = false;

            SystemUserWrapper user = SystemUserWrapper.GetUserByLoginID(username);

            if (user == null)
            {
                return(flag);
            }
            try
            {
                user.UserPassword           = EncodePassword(newPassword, user.PasswordSalt);
                user.LastPasswordChangeDate = DateTime.Now;
                user.LastActivityDate       = DateTime.Now;
                SystemUserWrapper.Update(user);
                flag = true;
            }
            catch
            {
                throw new MembershipPasswordException(
                          NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this,
                                                                                           NHibernateProviderSR.
                                                                                           Pwd_OpCancelledDueToAccountLocked));
            }

            return(flag);
        }
Ejemplo n.º 4
0
        public override void AddUsersToRoles(string[] usernames, string[] roleNames)
        {
            int length = usernames.Length;

            if (length != roleNames.Length)
            {
                throw new ArgumentOutOfRangeException(NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this, NHibernateProviderSR.Role_UserRoleParamsNotSameLength));
            }
            try
            {
                SystemRoleWrapper.AddUsersToRoles(usernames, roleNames);
            }
            catch (Exception exception)
            {
                throw NhibernateMembershipProviderExceptionUtil.NewProviderException(this, NHibernateProviderSR.Role_UnableToAddUsersToRoles, exception);
            }
        }
Ejemplo n.º 5
0
        public override bool ChangePassword(string username, string oldPassword, string newPassword)
        {
            bool flag = false;

            if (ValidateUser(username, oldPassword))
            {
                var e = new ValidatePasswordEventArgs(username, newPassword, true);
                OnValidatingPassword(e);
                if (e.Cancel)
                {
                    if (e.FailureInformation != null)
                    {
                        throw e.FailureInformation;
                    }
                    throw NhibernateMembershipProviderExceptionUtil.NewProviderException(this,
                                                                                         NHibernateProviderSR.
                                                                                         Pwd_ChangeCancelledDueToNewPassword);
                }
                SystemUserWrapper user = SystemUserWrapper.GetUserByLoginID(username);
                if (user == null)
                {
                    return(flag);
                }
                try
                {
                    user.UserPassword           = EncodePassword(newPassword, user.PasswordSalt);
                    user.LastPasswordChangeDate = DateTime.Now;
                    user.LastActivityDate       = DateTime.Now;
                    SystemUserWrapper.Update(user);
                    flag = true;
                }
                catch
                {
                    throw new MembershipPasswordException(
                              NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this,
                                                                                               NHibernateProviderSR.
                                                                                               Pwd_OpCancelledDueToAccountLocked));
                }
            }
            return(flag);
        }
Ejemplo n.º 6
0
        public override string ResetPassword(string username, string answer)
        {
            if (!EnablePasswordReset)
            {
                throw new MembershipPasswordException(
                          NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this,
                                                                                           NHibernateProviderSR.
                                                                                           Pwd_ResetNotEnabled));
            }
            if ((answer == null) && RequiresQuestionAndAnswer)
            {
                UpdateFailureCount(username, FailureType.PasswordAnswer);
                throw new MembershipPasswordException(
                          NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this,
                                                                                           NHibernateProviderSR.
                                                                                           Pwd_AnswerRequiredForReset));
            }
            string password = Membership.GeneratePassword(minRequiredPasswordLength,
                                                          MinRequiredNonAlphanumericCharacters);
            var e = new ValidatePasswordEventArgs(username, password, true);

            OnValidatingPassword(e);
            if (e.Cancel)
            {
                if (e.FailureInformation != null)
                {
                    throw e.FailureInformation;
                }
                throw new MembershipPasswordException(
                          NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this,
                                                                                           NHibernateProviderSR.
                                                                                           Pwd_ResetCancelledDueToNewPassword));
            }
            SystemUserWrapper user = SystemUserWrapper.GetUserByLoginID(username);

            if (user != null)
            {
                if (user.IsLockedOut)
                {
                    throw new MembershipPasswordException(
                              NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this,
                                                                                               NHibernateProviderSR.
                                                                                               User_IsLockedOut));
                }
                if (RequiresQuestionAndAnswer && !CheckPassword(answer, user.PasswordAnswer, user.PasswordSalt))
                {
                    UpdateFailureCount(username, FailureType.PasswordAnswer);
                    throw new MembershipPasswordException(
                              NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this,
                                                                                               NHibernateProviderSR.
                                                                                               Pwd_IncorrectAnswer));
                }
                try
                {
                    user.UserPassword           = EncodePassword(password, user.PasswordSalt);
                    user.LastPasswordChangeDate = DateTime.Now;
                    user.LastActivityDate       = DateTime.Now;
                    SystemUserWrapper.SaveOrUpdate(user);
                }
                catch
                {
                    throw new MembershipPasswordException(
                              NhibernateMembershipProviderExceptionUtil.FormatExceptionMessage(this,
                                                                                               NHibernateProviderSR.
                                                                                               Pwd_OpCancelledDueToAccountLocked));
                }
            }
            return(password);
        }