在不验证用户身份的情况下验证用户名和密码

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.

的实现