具有asp.net核心身份的自定义存储提供程序

时间:2017-09-05 07:48:24

标签: asp.net asp.net-core asp.net-identity

我正在使用现有的身份验证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>();

我读过这篇文章:

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-custom-storage-providers

并且他们建议实现IUserStore并从那里处理现有的API,但在阅读了SignInManager和UserManager的默认实现之后,它似乎以单独的方法检查用户名和密码。

很抱歉我对这个主题缺乏了解,我对身份服务器很陌生。非常感谢任何帮助!

0 个答案:

没有答案