我有 .Net Core 2.1 应用程序,并且添加了 JWT 授权services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(o =>
{
...
});如何记录尝试访问具有[Authorize]属性的操作?我尝试使用此方法https://stackoverflow.com/a/46963194/7137259并注入我的记录器,但我的记录器使用实体数据库上下文,并且我无法将作用域记录器注入到IConfigureNamedOptions. 另外如何在未经授权时返回正常响应?
1 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
您可以在 JwtBearerEvents 中解析您的范围服务,您也可以在那里修改响应:
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, o =>
{
o.Events = new JwtBearerEvents()
{
OnAuthenticationFailed = c =>
{
var svc = c.HttpContext.RequestServices.GetRequiredService<IMyService>();
c.NoResult();
c.Response.StatusCode = 500;
c.Response.ContentType = "text/plain";
c.Response.WriteAsync(c.Exception.ToString()).Wait();
return Task.CompletedTask;
}
};
});
- 1 回答
- 0 关注
- 185 浏览
添加回答
举报
0/150
提交
取消