Microsoft.AspNetCore.Authorization.AuthorizeAttribute失败时返回20



我有一些类似的代码:

[HttpGet]
[Authorize("MyCustomPolicy")]
public string TestCall()
{
var lanId = User.GetSomeClaimOnTheUserObject() ?? "Not Found";
return "Hello From a TestCall Get Operation.  Claim is " + lanId;
}

授权策略如下:

var myCustomPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.AddAuthenticationSchemes("SomeScheme")
.Build();
options.AddPolicy("MyCustomPolicy", myCustomPolicy);

当我调用它时,如果满足AuthenticationScheme,它会允许调用通过,如果不满足,它会阻止它(正如预期的那样(。

不起作用的部分是,当它阻止呼叫时,我希望返回403或401,但我得到的却是200(OK(。

当它的Authorize属性失败时,我如何让它返回401

我遇到了同样的问题,在SO中进行了一些搜索后,我发现这个AuthorizeAttribute基本上会在验证失败时返回带有登录页面的视图,而不是给出401。为了解决这个问题,你可能想尝试这个答案,或者根据你的用例搜索其他一些例子,但本质上问题的原因是一样的。

相关内容

  • 没有找到相关文章

最新更新