Asp.net-Identity

保護整個 ASP.NET 5 MVC 6 應用程序

  • April 6, 2017

如果我想保護我的 MVC 應用程序中的特定部分,我使用[Authorize]ActionMethod。我也知道我可以將它用於整個控制器,這樣我就不必為其中的每個 ActionMethod 指定它。

我想在全球範圍內要求授權,並且希望能夠只在少數幾個地方允許匿名使用者。如何要求使用者全域授權並允許匿名使用者在幾個 ActionMethods 中使用?

您可以簡單地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 自己的回答)

這是答案……在Startup課堂上,ConfigureServices方法:

public void ConfigureServices(IServiceCollection services)
       {
           // Add framework services.
           services.AddMvc(options =>
           {
               options.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build()));
           });
       }

引用自:https://stackoverflow.com/questions/34649549