2017-03-15 78 views
1

我已經開始關注ASP.NET核心,特別是Authorization。模型發生了很大的變化,我必須說我發現它與上次實現相比有點混亂。何時使用ASP.NET Core中的AuthorizeFilter

我見過各種不同的帖子,感嘆現在不可能將參數傳遞給Authorization屬性構造函數,而現在我們有了Policy/Requirement/Handler。

那麼AuthorizeFilter的用戶案例究竟是什麼?它與AuthorizeAttribute有什麼不同?什麼時候應該實施Requirement/Handler,什麼時候(或者應該我)實現一個AuthorizeFilter(看起來它可能更接近舊模型)?

我在網上找不到任何資源詳細介紹了這個特定的方面,所以任何啓示都非常感謝。

回答

2

類的AuthorizeFilter上述文檔說:

MVC recognizes the <see cref="T:Microsoft.AspNetCore.Authorization.AuthorizeAttribute" /> 
and adds an instance of this filter to the associated action or controller. 

因此,當一個控制器被創建的AuthorizeFilter的一個實例被添加到控制器的過濾器時,AuthorizeAttribute存在。

基本上他們拆分裝飾:AuthorizeAttribute從執行:AuthorizeFilter

所以如果你想要乾淨的代碼,你可以使用AuthorizeAttribute來裝飾你的控制器類。

如果您想要更容易理解的/邏輯代碼,您可以將te AuthorizeFilter添加到Controller構造函數方法中的過濾器。

相關問題