违反ASP.NET Core中的Authorize属性的默认行为是什么

Fro*_*art 5 c# asp.net asp.net-core

Authorize在ASP.NET Core 中违反该属性的默认行为是什么?

[Authorize(Roles = "Administrator")]
public ActionResult ShutDown()
{

}
Run Code Online (Sandbox Code Playgroud)

它似乎重定向到/Account/AccessDenied如果用户没有足够的权限,/Account/Login如果用户还没有登录.

我对吗?

我在文档中没有看到任何关于它的内容.

blo*_*art 4

这取决于您使用的身份验证中间件。

默认情况下,基于 cookie 的身份验证中间件会将未经身份验证的用户重定向到 /Account/Login,并将已通过身份验证的用户重定向到 /Account/AccessDenied。可以通过在中间件选项中设置 AutomaticChallenge 标志来关闭此行为,这样当用户未登录时,它只会返回 HTTP 401 响应,或者当用户登录时返回 403,但不满足授权要求。

JWT 承载中间件只会返回 401 或 403 状态代码。

其他中间件的行为可能有所不同,具体取决于它们尝试实现的标准。