保护整个ASP.NET 5 MVC 6应用程序

时间:2016-01-07 07:29:35

标签: asp.net-identity asp.net-core asp.net-core-mvc asp.net-authorization

如果我想保护我的MVC应用中的特定部分,我会使用[Authorize]作为ActionMethod。我也知道我可以将它用于整个控制器,这样我就不必为其中的每一个ActionMethod指定它。

我想在全球范围内要求授权,并且希望能够仅在少数几个地方允许匿名用户。如何要求用户在全球范围内获得授权,并允许匿名用户使用一些ActionMethods?

2 个答案:

答案 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()));
            });
        }