security - Microsoft.AspNetCore.Authorization.AuthorizeAttribute 在失败时返回 200 (OK)
问题描述
我有一些类似的代码:
[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。要解决这个问题,您可能想尝试这个答案或根据您的用例搜索对于其他一些示例,但基本上问题的原因是相同的。
推荐阅读
- javascript - ReactJS 模板文字作为变量名
- javascript - 如何从给定列表生成 n 个大小的列表的列表
- c - Scanf 在 for 循环中没有按预期工作
- microsoft-graph-api - 无法创建具有更多注册应用程序权限的承载
- python - Pandas 基于另一列的条件行值
- scala - Spark2.4无法从同一个表覆盖表
- html - 在同一个表单中使用两个提交按钮是否有任何潜在问题?
- c# - 使用 Azure Active Directory 登录时,如何在 Azure Web App 的 C# 代码中获取我的用户名?
- python - 将张量调整为张量流中的特定形状
- tensorflow - 谷歌 colab 训练完 yolov3-tiny 后立即停止