簡體   English   中英

因此,在asp.net MVC中應用授權屬性沒有捷徑嗎?

[英]So, there is no shortcut in applying authorize attribute in asp.net MVC?

如果我有一個很大的系統需要身份驗證,那么將控制器/操作方法注釋為[Authorize]會很麻煩。 正如Jon Gallaway所建議的那樣,Fluent Security似乎是一個好主意,但是我們仍然必須照顧到每個需要身份驗證的控制器或操作方法。 我只是想知道是否有更好的方法,甚至比流暢的安全性還更好。 有什么想法嗎?

您應該將[Authorize]添加到BaseAuthorizedController:Controller類。 然后,對於您知道已鎖定功能的類。 從該類派生會強制所有類成員遵守基類的[Authorize]屬性,而您不必擔心每個函數。

Authorize過濾器按其工作方式工作,我認為您沒有想要實現的現成解決方案。 如果我的問題沒有弄錯,那么您希望默認情況下保護所有控制器和控制器操作免受未經授權的訪問,而無需采取任何額外的步驟使用“授權”過濾器為每個控制器/操作添加注釋,對嗎? 如果是這樣,也許一個好的解決方案是通過擴展Controller類來創建自己的Controller。 然后讓它覆蓋OnAuthorization方法。 例如...

public class CustomController : Controller
{
    protected override void OnAuthorization(AuthorizationContext filterContext)
    {
       if (context.HttpContext.User.Identity.IsAuthenticated)
       {
           ...
       }
    }
}

然后,您可能要檢查是否已指定AllowAnonymous過濾器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM