// Inherited from MembershipProvider ==> Forwarded to previous provider if this provider hasn't been initialized
        public override bool ChangePassword(string username, string oldPassword, string newPassword)
        {
            if (!InitializeCalled)
            {
                return(PreviousProvider.ChangePassword(username, oldPassword, newPassword));
            }

            // REVIEW: are commas special in the password?
            if (string.IsNullOrEmpty(username))
            {
                throw new ArgumentException("Argument_Cannot_Be_Null_Or_Empty", "username");
            }
            if (string.IsNullOrEmpty(oldPassword))
            {
                throw new ArgumentException("Argument_Cannot_Be_Null_Or_Empty", "oldPassword");
            }
            if (string.IsNullOrEmpty(newPassword))
            {
                throw new ArgumentException("Argument_Cannot_Be_Null_Or_Empty", "newPassword");
            }
            MembershipAccount user;

            try
            {
                user = GetUser(username);
            }
            catch
            {
                return(false);
            }
            using (var session = new MongoSession(_connectionString))
            {
                // First check that the old credentials match
                if (!CheckPassword(session, user.UserId, oldPassword))
                {
                    return(false);
                }

                return(SetPassword(session, user, newPassword));
            }
        }
Beispiel #2
0
        // Inherited from MembershipProvider ==> Forwarded to previous provider if this provider hasn't been initialized
        public override bool ChangePassword(string username, string oldPassword, string newPassword)
        {
            if (!InitializeCalled)
            {
                return(PreviousProvider.ChangePassword(username, oldPassword, newPassword));
            }

            // REVIEW: are commas special in the password?
            if (username.IsEmpty())
            {
                throw new ArgumentException(CommonResources.Argument_Cannot_Be_Null_Or_Empty, "username");
            }
            if (oldPassword.IsEmpty())
            {
                throw new ArgumentException(CommonResources.Argument_Cannot_Be_Null_Or_Empty, "oldPassword");
            }
            if (newPassword.IsEmpty())
            {
                throw new ArgumentException(CommonResources.Argument_Cannot_Be_Null_Or_Empty, "newPassword");
            }

            using (var db = ConnectToDatabase())
            {
                int userId = GetUserId(db, SafeUserTableName, SafeUserNameColumn, SafeUserIdColumn, username);
                if (userId == -1)
                {
                    return(false); // User not found
                }

                // First check that the old credentials match
                if (!CheckPassword(db, userId, oldPassword))
                {
                    return(false);
                }

                return(SetPassword(db, userId, newPassword));
            }
        }