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

Sam*_*Sam 7 asp.net-authorization asp.net-identity asp.net-core-mvc asp.net-core

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

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

hai*_*770 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)));
}
Run Code Online (Sandbox Code Playgroud)

(实际的政策制定部分取自@Sam自己的答案)