2012-08-23 28 views
-2

我在MVC新的,我掙扎了持續4天找到自定義授權和驗證任何好的教程在asp.net MVC 3如何在不使用Membership的情況下在asp.net MVC 3中使用自定義授權和身份驗證?

問題是: -

我們有我們自己的自定義用戶主表以及自定義角色主表。

現在我想知道我們如何使用我們現有的自定義用戶表對來自登錄頁面的特定用戶進行身份驗證,並且還爲角色登記用戶分配了權限i:e角色ID。

我想要的第二件事情是,當用戶發出任何請求控制器時,我想檢查用戶會話是否爲空,並且還要檢查登錄用戶的角色ID是否具有該角色ID有權訪問該控制器或不。

並且還希望實現基於角色的訪問控制。 對於離: -

角色1可編輯角色2和角色的帳戶3
角色2可以編輯角色3的帳戶只(受限制的編輯角色1個賬戶),選擇那些

一種解決方案。是做出不同的視圖和控制器,但我不認爲這是更好的解決方案。

請推薦!!!!

在此先感謝!!!!

+0

[Custom Authorize Attribute]的可能重複(http://stackoverflow.com/questions/5070339/custom-authorize-attribute) – James

+0

你已經試過了什麼?例如'FormsAuthentication'? –

+2

你能解釋一下爲什麼你不想寫自定義的'MembershipProvider'嗎? – Mohayemin

回答

0

我最近爲MVC寫了一個自定義登錄解決方案。在我的情況下,我在第一次請求網站時在查詢字符串中獲得SSO票據。票證通過對售票服務的Web服務調用進行驗證。

身份驗證通過後,我設置了一個正常形式的身份驗證cookie,以便在每次後續呼叫時都建立身份。

在我的情況下,我有一個自定義的Identity類,繼承自GenericIdentity。附加信息在窗體身份驗證票據的用戶數據部分中傳遞。我在global.asax.cs中有一個自己的Application_AuthenticateRequest函數,用於解包用戶數據並設置標識。

如果您的表單身份驗證票據中沒有任何特殊數據,我認爲只需在成功身份驗證時設置cookie就足夠了 - 內置版本將負責檢查票據並根據授權票。

+0

您對此問題有任何解決方案: - **角色1可以編輯角色2和角色3的帳戶 角色2只能編輯角色3的帳戶(限制編輯角色1帳戶)** – RL89

+0

使用基於正常角色通過檢查'UserIsInRole'驗證。您只需確保將當前角色設置爲線程/請求標識的一部分即可。 –

+0

Thanx ** Andres **但問題是** Role2 **允許編輯記錄,這意味着** Role2 **必須具有與** Role1 **相同​​的**編輯控制器**的權限是**管理員**角色,但我們如何將角色2限制爲編輯角色1以及除登錄角色之外的任何其他角色2。 – RL89

相關問題