我们正在为一个新的ASP添加cookie身份验证。NET 5应用程序。(目前使用Beta 7)
我们将此添加到Startup.cs:
//Use cookie authentication
app.UseCookieAuthentication(options => {
options.LoginPath = new PathString("/Login");
options.AutomaticAuthentication = true;
});
并且[Authorize]
属性工作正常,重定向到登录页面。
在我们的Login()控制器方法中,我们创建声明和标识:
var claims = new List<Claim>();
claims.Add(new Claim("name", loginRequest.Username));
var identity = new ClaimsIdentity(claims.ToArray(),
CookieAuthenticationDefaults.AuthenticationScheme);
作为最后一步,我们尝试调用SignIn()方法。
Context.Response.SignIn(identity); //what is the namespace for SignIn()??
但是我们找不到SignIn()方法的命名空间。我们的目标是在没有完整Identity框架的情况下使用尽可能简单的解决方案。(虽然我可以在必要时引用它来让SignIn()管道工作。)
文档中提到的SignIn()方法的名称空间是什么?
我弄明白了-看起来我使用了一些过时的文档。我应该像这样调用SignIn():
await Context.Authentication.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(identity));
这篇文章和他创建的简化示例非常有帮助。谢谢!