2009-08-04 172 views
2

我正在寫一個MVC應用程序,它有兩個分支從一開始就沿着右轉。在路徑授權與PIN,我正在使用表單身份驗證來限制訪問此代碼的這一部分。但是,其他路徑將接受AD登錄,我需要阻止人們使用URL在分支之間移動。我應該使用自定義路由還是應該創建兩個單獨的授權屬性來限制訪問。MVC路由與授權/授權標記

感謝

回答

2

你可以使用角色與現有AuthorizeAttribute處理這個問題。只需將您的AD授權用戶設置爲特定角色,然後在需要AD登錄的路徑中爲該控制器/方法設置角色以要求AD角色。這將需要實施一個RoleProvider,看起來有點令人生畏,但實際上並不是那麼糟糕。將用戶的角色緩存在cookie中,這樣您就不必每次都查看它們。這樣做的好處是,隨着應用程序變得越來越複雜,這將擴展到其他角色。

或者,您可以擴展現有的AuthorizeAttribute,覆蓋OnAuthorization並使用您的自定義版本。該屬性可以檢查以確保請求不僅被授權,而且它具有適當的憑證類型。證書類型可以在登錄時存儲在會話中,並從那裏爲經過驗證的用戶進行檢索。這寫起來很簡單,但不能很好地擴展。