如何让 vNext 使用我的自定义身份代码?
How to make vNext use my custom Identity code?
我想实现自定义登录系统,因为我的用户存储在不同的数据库中,而我只有一个 dll 来验证凭据,所以我不需要数据库。我只想要登录(使用角色:管理员和用户)和注销此应用程序的能力。在工具的数据库中,我只保存了用户名和他的角色(没有密码)。
首先:类我必须实施什么才能达到预期的效果?
其次:如何配置应用程序以便它使用我的自定义代码?
我不确定我是否 100% 正确,但请看一下:
1.配置cookies认证
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("");
}
}
我想实现自定义登录系统,因为我的用户存储在不同的数据库中,而我只有一个 dll 来验证凭据,所以我不需要数据库。我只想要登录(使用角色:管理员和用户)和注销此应用程序的能力。在工具的数据库中,我只保存了用户名和他的角色(没有密码)。
首先:类我必须实施什么才能达到预期的效果?
其次:如何配置应用程序以便它使用我的自定义代码?
我不确定我是否 100% 正确,但请看一下:
1.配置cookies认证
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("");
}
}