保护整个 ASP.NET 5 MVC 6 应用程序
Securing the whole ASP.NET 5 MVC 6 application
如果我想保护我的 MVC 应用程序中的特定部分,我使用 [Authorize]
作为 ActionMethod。我也知道我可以将它用于整个控制器,这样我就不必为其中的每个 ActionMethod 指定它。
我想在全局范围内要求授权,并且希望能够只在少数几个地方允许匿名用户。如何要求用户在全局范围内获得授权并允许匿名用户在一些 ActionMethods 中使用?
您只需在 Startup.cs
:
中全局注册 AuthorizeFilter
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)));
}
(实际的 policy-building 位取自@Sam 自己的回答)
这是答案...在 Startup
class、ConfigureServices
方法中:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc(options =>
{
options.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build()));
});
}
如果我想保护我的 MVC 应用程序中的特定部分,我使用 [Authorize]
作为 ActionMethod。我也知道我可以将它用于整个控制器,这样我就不必为其中的每个 ActionMethod 指定它。
我想在全局范围内要求授权,并且希望能够只在少数几个地方允许匿名用户。如何要求用户在全局范围内获得授权并允许匿名用户在一些 ActionMethods 中使用?
您只需在 Startup.cs
:
AuthorizeFilter
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)));
}
(实际的 policy-building 位取自@Sam 自己的回答)
这是答案...在 Startup
class、ConfigureServices
方法中:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc(options =>
{
options.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build()));
});
}