相关疑难解决方法(0)

使用ASP.Net Core中的Authorize属性返回HTTP 403

使用ASP.Net WebAPI时,我曾经使用过自定义Authorize属性来返回HTTP 403或401根据情况.例如,如果用户未经过身份验证,则返回401; 如果用户已通过身份验证但没有相应的权限,请返回a 403.有关详细信息,请参阅此处.

现在看来,在新的ASP.Net Core中,他们不希望你再次覆盖该Authorize属性,而是倾向于采用基于策略的方法.然而,似乎Core MVC遭受了401与其前辈相同的"只返回所有auth错误"的方法.

如何覆盖框架以获得我想要的行为?

asp.net-core-mvc asp.net-core

21
推荐指数
3
解决办法
1万
查看次数

禁止重定向ASP.NET Core中的API URL

我有一个ASP.NET Core站点,它对大多数页面使用cookie身份验证.对于这些页面,需要为未授权客户端提供302重定向的默认服务器响应.但是,该站点也接受API请求; 他们使用API​​密钥,不使用cookie.

理想情况下,我想完全关闭API URL的cookie处理,但最低限度,我需要确保如果API客户端未经授权,服务器不会响应302重定向.

authentication cookies http-redirect asp.net-identity-2 asp.net-core

13
推荐指数
2
解决办法
3974
查看次数

Forbid() 返回 404

我已从 Web 请求返回Forbid(),浏览器声称收到 404 而不是 403。

我已经向 cookie 身份验证添加了一个处理程序,如下所示......

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

   return Task.FromResult(0);
};
Run Code Online (Sandbox Code Playgroud)

但这似乎没有被调用。

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

asp.net-web-api asp.net-core-2.0

6
推荐指数
1
解决办法
1248
查看次数