Asp.net-Core-Mvc

MVC Core 如何強制/設置所有操作的全域授權?

  • April 4, 2016

如何為 MVC Core 中的所有操作強制/設置全域授權?

我知道如何註冊全域過濾器 - 例如我有:

Setup.cs

services.AddMvc(options =>
{
   options.Filters.Add(new RequireHttpsAttribute());
});

這很好用,但我不能為授權添加相同的內容:

options.Filters.Add(new AuthorizeAttribute());

我有錯誤:

Cannot convert from 'Microsoft.AspNet.Authorization.AuthorizeAttribute()' to 'System.Type'

(方法.Add()需要IFilterMetadata類型)

我知道 - 從類似的問題 - 這適用於 MVC4-5 ……所以必須在 MVC Core 上改變一些東西……

有人知道嗎?

services.AddMvc(config =>
{
   var policy = new AuthorizationPolicyBuilder()
                    .RequireAuthenticatedUser()
                    .Build();
   config.Filters.Add(new AuthorizeFilter(policy));
});

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