2010-02-21 31 views
2

我剛剛開始了一個小型ASP.NET Web應用程序。在這個項目中,我需要使用Active Directory對用戶進行身份驗證。我設法使用Active Directory成功驗證用戶。但是使用自定義角色提供程序的授權,我很困惑。你看,用戶名和密碼存儲在AD中。所以,我的方法是,在Login Control的LoggedIn事件之後,我檢查UserName是否尚未存儲在Users表中,然後我將該用戶名存儲在那裏。最後,我將AD用戶的所有UserName存儲在Users表中,以便我可以將角色分配給用戶。請參閱我的表如下圖:使用ActiveDirectory進行身份驗證和使用自定義角色提供程序進行授權

alt text http://img265.imageshack.us/img265/5986/20100221200058.jpg

比方說,我分配給用戶A RoleOne。在他成功登錄後,我會進行一些查詢以查找他的角色。

我在哪裏保留角色票?在Cookie中還是在會話中? ASP.NET角色提供者的授權如何工作?我想存儲像ASP.NET角色證明者那樣的授權票據。

回答

0

您是否考慮過將Active Directory組用於角色和WindowsTokenRoleProvider(或訪問AD的自定義角色提供程序)?我發現這對於您使用AD進行身份驗證的情況非常有效。一個提示:使用cookie來存儲用戶的角色,這樣你就不必在每個請求中找到它們。

+0

項目需求需要使用AD進行驗證,並使用數據庫表進行授權。餅乾是授權的好地方。我只關心安全。如果我爲此使用Cookie,我想我必須在每個頁面請求上檢查它,否則我不必? – 2010-02-21 14:57:02

+0

Cookie應該被加密。當您設置RoleProvider時,您可以指定使用Cookie來保存角色。如果您使用cookie,則它會自動從cookie中檢索角色,而不是使用提供者(如果cookie可用)。我相信他們是會話cookie。您可以使用SSL保護它們,並在必要時加密它們。 – tvanfosson 2010-02-21 18:40:15

相關問題