我正在使用现有的身份验证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的默认实现之后,它似乎以单独的方法检查用户名和密码 .
很抱歉由于我对这个主题缺乏了解,我对Identity Server很陌生 . 任何帮助将不胜感激!