1
我使用UserManager.CheckPassword(...)
自定義IUser
實現時遇到問題。自定義IUser實現 - 驗證密碼
我正在使用.net與Owin的身份,創建了我自己的IUser
和IUserStore
的實現。
對於商店,我只使用可選的電子郵件和密碼存儲。
的IUser
實現是在這裏看到,與基本字段:驗證用戶時,在登錄時出現
public class RegisteredUser : IUser<string>
{
public RegisteredUser()
{
Id = Guid.NewGuid().ToString();
}
public string Id { get; }
public string UserName { get; set; }
public string PasswordHash { get; set; }
public string Email { get; set; }
public bool EmailConfirmed { get; set; }
}
問題 我無法使用SignInManager.PasswordSignIn(...)
爲我的商店犯規實施LockoutStore。
相反,我用UserManager.CheckPassword(...)
,但這將引發出現FormatException,說:
輸入不是一個有效的Base-64串...
UserSignInManager manager = HttpContext.GetOwinContext().Get<UserSignInManager>();
RegisteredUser user = manager.UserManager.FindByEmail(model.Email);
if (user != null && manager.UserManager.CheckPassword(user, model.Password))
{
manager.SignIn(user, model.RememberMe, model.RememberMe);
return RedirectToAction("UserProfile");
}
想着這個,我也不明白CheckPassword()
方法能夠檢查我的自定義實現的密碼而不知道在哪裏查找。
我在做什麼錯?
您可以在UserManager上發佈更多數據嗎? CheckPassword方法? –
這不是我自己的實現。我使用microsofts默認值,但用我自己的自定義UserStore實例化它。 –