如何让vNext使用我的自定义身份代码?

时间:2015-07-29 09:10:16

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

我想实现自定义登录系统,因为我的用户存储在不同的数据库中,我只有一个dll来验证凭据,所以我不想要数据库。我只想要能够登录(使用角色:admin和user)并注销此应用。在工具的数据库中,我只保存用户名和他的角色(没有密码)。

首先:我必须实现哪些类能达到预期的效果?

第二:如何配置应用程序,以便使用我的自定义代码?

1 个答案:

答案 0 :(得分:1)

我不确定我是100%正确地做到了,但请看一下:

<强> 1。配置cookie身份验证

        public void Configure(IApplicationBuilder app)
        {
            app.UseCookieAuthentication(options =>
            {
                options.AutomaticAuthentication = true;
                options.SlidingExpiration = true;
                options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
            });

        }

<强> 2。登录

public class LoginController: Controller 
{

   public IActionResult SignIn(LoginModel form)
   {    
        var userId = CustomLoginLogic(form);

        var claims = new List<Claim>
                {
                    new Claim(ClaimTypes.NameIdentifier, result.UserId)
                };
        var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme));                       
        context.Response.SignIn(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal);
        return Content("");
   }
}