Add the ability to change account passwords from the web app #112
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds the ability to change account passwords from the web interface. This is especially helpful for when login fails because a password has expired or an administrator has forced a user to change their password before they can sign in.
login.aspx, error messages describing the need to change a password now include a link to the password change page.password.aspxnow allows you to enter a username, old password, and new password. It first attempts to find the directory entry for a user and change the password. If that fails, it falls back to using principal contexts. If that fails, an error message is shown.This feature does not work if a user does not have the ability to change their password directly. It will also not work if the raweb application pool does not have permission to access user principals or directory entries and change their passwords.
This is not implemented with
NetUserChangePasswordfromnetapi32.dllbecause it would require the application process to run with increased permissions. Additionally, in my testing, even when input passwords were correct, it always gave error 86 (ERROR_INVALID_PASSWORD).Resolves #100.
Install
Run as an administrator in PowerShell to install this branch:
Checklist
Screenshots