我有一個MVC 3應用程序,我正在構建,需要找出一個管理認證和授權的好方案。我使用過會員制,在這種情況下我不想使用它 - 我更喜歡使用我自己的設計和表格。但是,如果適合,我願意使用內置接口來實現我的定製邏輯。幫助MVC認證/授權解決方案
這裏是我的要求:
用戶可以是一個或多個角色的一部分。
角色可能映射到任意數量的「權限」(多對多)。許可類似於「可以編輯其他用戶的帖子」。
每個控制器動作可能允許訪問一個或多個角色(或者可能沒有授權,對於公共頁面)。
我還需要「功能級別」控制哪些角色可以查看/更新視圖上的各種元素。可以使用權限來驅動這些角色。
作爲一個附註,我可能會允許會員使用他們的Facebook和/或Twitter帳戶註冊。但是,這可以獨立於我的自定義成員資格實施完成(如果適合的話)(即,在註冊時創建自定義用戶,然後將其綁定到FB/Twitter帳戶)。
我確定有人做過這樣的事情。但基於我在這個主題上看到的十幾個或更多的博客和SO帖子,沒有一個解決方案真的適合這個,看起來似乎沒有。但是我很有可能無法將這些作品拼湊在一起,而恰當的東西正在把我凝視在臉上。例如,我已經閱讀了一些關於「基於聲明的」認證和「基於角色」的認證,但不確定我是否理解足夠的差異來打電話,也不知道他們需要ASP.NET Membership。我還通過實施IPrincipal和IIdentity以及使用動作過濾器來驅動控制器訪問來了解如何構建自定義成員資格,但我沒有找到任何全面的指導來完成此操作,而且我仍然使用動作過濾器進行了綠化。
我也不確定我是否應該使用.NET的一些內置控件進行註冊,身份驗證,忘記密碼等等。我的直覺並不是,因爲我通常喜歡自己構建這些控件,米也不知道他們是否會在自定義設置中工作。但如果我錯了,讓我知道。
在此先感謝。
您可能會喜歡我的方法http://stackoverflow.com/questions/3964989/how-to-pass-current-user-information-to-all-layers-in-ddd/3969014#3969014 – 2011-03-07 22:04:43