为了账号安全,请及时绑定邮箱和手机立即绑定

如何记录未经授权的访问尝试

如何记录未经授权的访问尝试

C#
慕仙森 2021-11-14 17:34:03
我有 .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;

        }

    };

});


查看完整回答
反对 回复 2021-11-14
  • 1 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信