如果我想保护我的MVC应用中的特定部分,我会使用[Authorize]
作为ActionMethod。我也知道我可以将它用于整个控制器,这样我就不必为其中的每一个ActionMethod指定它。
我想在全球范围内要求授权,并且希望能够仅在少数几个地方允许匿名用户。如何要求用户在全球范围内获得授权,并允许匿名用户使用一些ActionMethods?
答案 0 :(得分:9)
您只需在AuthorizeFilter
Startup.cs
即可
public void ConfigureServices(IServiceCollection services)
{
// configure/build your global policy
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
services.AddMvc(x => x.Filters.Add(new AuthorizeFilter(policy)));
}
(实际的政策制定位取自@ Sam自己的回答)
答案 1 :(得分:4)
以下是答案......在Startup
班级,ConfigureServices
方法:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc(options =>
{
options.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build()));
});
}