36

MVCコアのすべてのアクションに対してグローバル権限を強制/設定する方法はありますか?MVCコアすべてのアクションに対してグローバル権限を強制/設定する方法は?

私はグローバルフィルタを登録する方法を知っている - 例えば私が持っている:

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'

IFilterMetadataタイプを必要と.Add()方法)


私が知っている - ...これはMVC4-5上で動作するように何かがMVCのコア上で変更しなければならない...

誰かが持っている - 同様の質問から何か案が?

答えて

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

は答えてくれてありがとう:) –

+0

私に聞いてみよう - あなたの意見では - それは良い習慣だのですか?私は内部使用のためにWebAppを行う必要があり、私は公衆のためにアクセスできないことを確認する必要があります。 –

+0

もう1つの質問かもしれません - (グローバル)ソリューションは、パフォーマンス(たとえば、すべてのクラスに対してAuthorizeAttributeを使用する場合と比較して)に悪影響を与えますか? –

関連する問題