简单授权
asp.net 核心的授权就是 AuthorizeAttribute
[Authorize]
public class SomeController : Controller
{
public IActionResult Get()
{
}
public IActionResult Post()
{
}
}
这只允许登录用户访问这些操作。
或使用以下内容仅限制单个操作
public class SomeController : Controller
{
public IActionResult Get()
{
}
[Authorize]
public IActionResult Post()
{
}
}
如果你想允许所有用户访问其中一个操作,你可以使用 AllowAnonymousAttribute
[Authorize]
public class SomeController: Controller
{
public IActionResult Get()
{
}
[AllowAnonymous]
public IActionResult Post()
{
}
}
现在任何用户都可以访问 Post
。AllowAnonymous
总是优先授权,所以如果一个控制器设置为 AllowAnonymous
那么它的所有动作都是公开的,无论它们是否有 AuthorizeAttribute
。
可以选择将所有控制器设置为需要授权的请求 -
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
})
这是通过向每个控制器添加默认授权策略来完成的 - 控制器/操作上的任何 Authorize
/ AllowAnonymous
属性都将覆盖这些设置。