我正在使用 WebAPI 2 后端构建 SPA 应用程序。我正在使用新的 ASP.NET Identity 2.0 进行授权和身份验证。为了登录,我调用/Token URL,它返回我用于后续 API 调用的 token 。现在这一切都运行良好。
现在我需要对登录/身份验证过程进行一些更改,在返回 token 之前我想检查电子邮件是否已确认以及用户是否处于事件状态(两个数据库字段)。但我无法找到正在调用哪个方法来进行授权。我以为是AccountController中的GetExternalLogin方法,但似乎不是这样。
有人可以告诉我哪里需要更改登录逻辑吗?
最佳答案
您将需要实现自己的 UserStore 来实现您自己的身份验证逻辑。
请参阅This SO question
如果您不想这样做,可以在 ApplicationOAuthProvider.cs
中找到此函数 GrantResourceOwnerCredentials
。此行之后
IdentityUser user = await userManager.FindAsync(context.UserName,
context.Password);
您也许可以加入一些自定义逻辑,例如
if (IsEmailConfirmed(user) == false)
{
context.SetError("invalid_grant", "The user name or password is incorrect.");
return;
}
关于c# - ASP.NET Identity 2.0 中基于 token 的登录逻辑更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23107734/