如果我想保护我的MVC应用程序中的特定部分,我使用[授权]作为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))); }
(实际的政策制定位来自@ Sam自己的答案)