在 ASP.NET Core 3.1 中,从 cookie 中获取身份信息有一些变化。下面是一个解决方法的示例代码:
Startup.cs
文件中配置了身份认证服务和cookie选项:public void ConfigureServices(IServiceCollection services)
{
// 添加身份认证服务
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie();
services.Configure(options =>
{
options.MinimumSameSitePolicy = SameSiteMode.Strict;
options.HttpOnly = HttpOnlyPolicy.Always;
options.Secure = CookieSecurePolicy.Always;
});
// 其他配置...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 其他配置...
// 启用身份认证中间件
app.UseAuthentication();
// 其他配置...
}
HttpContext
对象来访问 cookie 中的身份信息:public class MyController : Controller
{
private readonly IHttpContextAccessor _httpContextAccessor;
public MyController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public IActionResult MyAction()
{
var identity = _httpContextAccessor.HttpContext.User.Identity;
// 使用身份信息进行操作...
return View();
}
}
在上面的代码中,我们通过构造函数注入了 IHttpContextAccessor
接口,然后在具体的方法中使用它来访问 HttpContext
对象。从 HttpContext.User.Identity
属性中可以获取到当前用户的身份信息。
希望这个示例能够帮助你解决问题!
上一篇:ASP.NET Core 3.1和Entity Framework Core:一对多关系
下一篇:ASP.NET Core 3.1将数据发布到相关表格(一对多),最终出现sqllite错误19“外键约束失败”。