Asp.net
使用 ASP.NET Identity 2 檢查密碼是否有效
在我的網站上,我讓管理員可以在不輸入舊密碼的情況下更改某人的密碼。我執行以下操作:
userManager.RemovePassword(oldUser.Id); userManager.AddPassword(oldUser.Id, newPassword);但是,只有當 newPassword 字元串符合配置文件中設置的密碼策略時,才會更改密碼。當新密碼不滿足要求時,AddPassword 似乎靜默失敗。
除了明顯的“手動程序”(檢查有多少個大寫/小寫字元,多少個數字等)之外,是否有一些簡單的方法可以根據目前策略檢查密碼是否有效。我正在尋找類似的東西
bool valid = IsPasswordValid("pass");
您可以使用該
PasswordValidator.ValidateAsync()方法來確定密碼是否符合您定義的標準UserManager:var valid = (await UserManager.PasswordValidator.ValidateAsync("pass")).Succeeded;
您可以簡單地使用 PasswordValidator 來檢查密碼的有效性和錯誤,如下所示:
var passwordValidator = new PasswordValidator<IdentityUser>(); var result = await passwordValidator.ValidateAsync(_userManager, null, "your password here"); if (result.Succeeded) { // Valid Password } else { // Check the error messages in result.Errors }上述解決方案適用於 Asp.Net Core 2.2