2009-11-15 86 views
2

我們得到我們新的MVC項目離地面,並試圖(通過操作過濾器最好),以解決身份驗證和授權的擔憂。我們的角色將作爲AD組(已經爲我們確定)出現,因此我們所需要做的就是讀取用戶所在的組(來自標識)。如果您在其中一個組中,則認爲您已通過身份驗證,並且適當的授權取決於操作/控制器(某些角色可以執行某些操作)。使用自定義會員供應商有沒有實際好處?有沒有一種方法可以進行全局身份驗證(因爲我們使用的是集成安全性,沒有登錄信息,如果您沒有進行身份驗證,則無法訪問任何頁面),因此我們不必每次都在身份驗證標籤上控制器?有人可能有鏈接的示例實現嗎?認證/授權的ASP.NET MVC項目

回答

4

使用自定義成員資格提供程序對 有實際好處嗎?

是的。我發現默認的membeship提供者不適合大多數情況下我們的需求。
老實說,使用它比處理非常簡單的定製工作更痛苦。
這並不意味着你不應該使用身份,只需插入身份並繼續使用它。

有沒有一種方法,我可以在全球 身份驗證(因爲我們使用的 集成的安全性,也沒有登錄 如果 你沒有權威性,你不能訪問任何頁面),所以我們止跌」沒有 將[Authenticate]標籤放在每個 控制器上?

對我來說最好的選擇是將[Authenticate]應用到基礎控制器並從中繼承你的。
如果您可以編寫自定義HttpHandler /模塊或插入ControllerFactory。
但它不值得。

另一件事是,可能不同的控制器需要不同的角色,所以在這種情況下,你需要應用[授權(角色=「A,B,C,d」)]的每一個。

是否有示例實現 有人可能有鏈接?

無法發佈適合您的示例(在NDA下)。但是根據你所描述的,你確實需要做的事情很少。只需應用[Authenticate]屬性即可。

0

適當授權取決於動作/控制器(某些角色可以做某些事情)上。

我第二基地控制器的德米特里的想法。一旦您通過AD驗證用戶,您可以將其組名寫入cookie中,然後在基本控制器中讀取它。你可以把你的組角色映射放在一個XML文件或其他東西中。我這樣做:在基本控制器中,我重寫了OnActionExecuting方法,並在那裏找出他們要求的動作和控制器,然後根據緩存的XML角色映射對其進行檢查,並且如果允許用戶那麼我讓方法繼續,否則,我將它們重定向到某處。