我们正在开发一个ASP.NET vNext项目,我们正在实现简单的基于cookie的身份验证。
我们考虑过使用auth-cookie来验证用户是否经过身份验证。它是这样创建的:
HttpContext.Authentication.SignInAsync();
用户对象本身将保存到会话缓存(ISession)。
请注意,不仅应将用户对象存储在会话中。应该存储大量信息(仅当用户通过身份验证时)。
感谢您的投入!
答案 0 :(得分:1)
考虑到您的要求,您可以选择使用Cookie middleware在请求之间保留用户,并使用Claims-based authorization保留您想要记住的有关用户的其他信息吗?
因此,在Configure方法的Startup类中,您可以添加cookie中间件,例如:
app.UseCookieAuthentication(options =>
{
options.AuthenticationScheme = "Cookies";
options.AutomaticAuthenticate = true;
options.AutomaticChallenge = true;
options.LoginPath = new PathString(@"/account/login");
options.AccessDeniedPath = new PathString(@"/account/accessdenied");
});
然后在ConfigureServices中,您可以设置所需的声明,例如:
services.AddAuthorization(options =>
{
options.AddPolicy("EmployeeOnly", policy => policy.RequireClaim("EmployeeNumber"));
});
请考虑链接以获取有关如何进行此设置的完整文档。