我正在使用现有的身份验证API和存储库,目前只公开两种方法。
Task<User> Login(string username, string password);
Task Logout(User user);
我想在asp.net核心身份中使用它。所有应用程序都需要能够登录,注销并显示当前登录的用户。
这是我目前关于如何做到这一点的想法。
将SignInManager类扩展为
public class MySignInManager : SignInManager<User>
{
public Override async Task<SignInResult> PasswordSignInAsync(string userName, string password,
bool isPersistent, bool lockoutOnFailure)
{
var user = await Login(userName, password);
if (user != null)
{
return SignInResult.Success;
}
else
{
return SignInResult.Failure;
}
}
}
然后在我的创业公司看起来像这样:
services.AddIdentity<User, IdentityRole>()
.AddDefaultTokenProviders();
services.AddTransient<MySignInManager>();
我读过这篇文章:
并且他们建议实现IUserStore并从那里处理现有的API,但在阅读了SignInManager和UserManager的默认实现之后,它似乎以单独的方法检查用户名和密码。
很抱歉我对这个主题缺乏了解,我对身份服务器很陌生。非常感谢任何帮助!