【问题标题】:Forbid() returns 404禁止()返回 404
【发布时间】:2018-04-14 00:23:04
【问题描述】:

我从网络请求中返回了Forbid(),浏览器声称它收到的是 404 而不是 403。

我已经像这样在 cookie 身份验证中添加了一个处理程序......

o.Events.OnRedirectToAccessDenied += ctx =>
{
   ctx.Response.StatusCode = (int)HttpStatusCode.Forbidden;

   return Task.FromResult(0);
};

但这似乎没有被调用。

那么,为什么应该返回 403 的方法返回 404?

【问题讨论】:

    标签: asp.net-web-api asp.net-core-2.0


    【解决方案1】:

    我遇到了同样的问题。这些是我修复它的步骤:

    1. 暂时从Startup 中删除所有异常处理,如app.UseExceptionHandler("/Home/Error")。在我的情况下,404 发生是因为异常处理被破坏了。
    2. 然后我得到“真正的”错误:我的问题是我没有配置身份验证,因此没有身份验证方案。

    在我将正确的身份验证选项添加到 Startup 之后(在我的例子中,我使用了自定义身份验证处理程序)我得到了正确的响应代码:

    services.AddAuthentication(LicenseKeyAuthenticationOptions.Scheme)
            .AddScheme<LicenseKeyAuthenticationOptions, LicenseKeyAuthenticationHandler>(LicenseKeyAuthenticationOptions.Scheme, null);
    

    【讨论】:

      猜你喜欢
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2011-05-31
      • 2013-11-28
      • 2014-09-03
      相关资源
      最近更新 更多