在不验证用户身份的情况下验证用户名和密码
Validate username and password without authenticating the user
使用 Asp.Net Identity 2.x 和 WebApi 2.x(都是最新的),是否可以仅验证给定的用户名和密码以了解提供的信息是否有效, 没有实际验证用户?
我正在我们的身份服务中进行部分登录,在提供有效凭据后,在 EULA 许可协议获得批准之前,我不会对用户进行身份验证,这一点很重要。这就是我挣扎的地方...
很抱歉没有提供任何代码,我希望问题很明显:)
如果您的项目中有 created/defined 个 UserManager
(参见 here),您可以尝试通过 his/her 用户名找到您的用户,如果找到,请致电VerifyHashedPassword
方法使用 PasswordHasher
成员。
string userName = "my-user-name";
string password = "my-password";
var user = await ApplicationUserManager.FindByNameAsync(userName);
if (user != null)
{
PasswordVerificationResult result = ApplicationUserManager.PasswordHasher.VerifyHashedPassword(user.PasswordHash, password);
}
它returns一个PasswordVerificationResult
:失败,成功,需要成功Rehash.
备注:
ApplicationUserManager
是我对 UserManager.
的实现
使用 Asp.Net Identity 2.x 和 WebApi 2.x(都是最新的),是否可以仅验证给定的用户名和密码以了解提供的信息是否有效, 没有实际验证用户?
我正在我们的身份服务中进行部分登录,在提供有效凭据后,在 EULA 许可协议获得批准之前,我不会对用户进行身份验证,这一点很重要。这就是我挣扎的地方...
很抱歉没有提供任何代码,我希望问题很明显:)
如果您的项目中有 created/defined 个 UserManager
(参见 here),您可以尝试通过 his/her 用户名找到您的用户,如果找到,请致电VerifyHashedPassword
方法使用 PasswordHasher
成员。
string userName = "my-user-name";
string password = "my-password";
var user = await ApplicationUserManager.FindByNameAsync(userName);
if (user != null)
{
PasswordVerificationResult result = ApplicationUserManager.PasswordHasher.VerifyHashedPassword(user.PasswordHash, password);
}
它returns一个PasswordVerificationResult
:失败,成功,需要成功Rehash.
备注:
ApplicationUserManager
是我对 UserManager.