2009-03-02 35 views

回答

0

您可以只使用ASP.NET的Active Directory Memebrship &角色提供認證\授權用戶到應用程序。然後,您可以撥打Roles.IsUserInRole來查看AD角色成員資格,以便在呈現內容之前檢查用戶是相關組的一部分。

2

我在很多應用程序中都做了這個。

爲您的應用程序啓用了Windows身份驗證。

創建一些可以存儲用戶憑據的對象,並將該對象存儲在會話中以便快速回復。如果不在那裏,您可以快速重建它。我通常有每個角色設置爲字節例如:


enum USER_ROLE : int 
{ 
    Role1 = 1, 
    Role2 = 2, 
    Role3 = 4, 
    Role4 = 8, 
    etc 
} 

if (Context.User.IsInRole("Roll1Name")) YourUserObject.Roles += USER_ROLE.Role1; 
if (Context.User.IsInRole("Roll2Name")) YourUserObject.Roles += USER_ROLE.Role2; 
etc 

然後隨時控制需要保證,我將它傳遞到接受一個HTMLLoader對象,並根據用戶的角色屬性和安全需求的功能該控制。

例如,布爾SetControlSecurity(HTMLControl時CTRL,INT iUserRoles,INT iControlRoles,ACTION反應的影響)

所以這樣做面板的一個示例可能是:

SetControlSecurity(pnlUserInfo,YourUserObject.Roles,eRole.Role2,ACTION.Hide);

我平時也有它參加一個參數去的動作類型像是躲進安全對不履行,只讀,清晰的數據,等等

相比在功能中的作用很簡單:


bool bHasAccess = ((iUserRole & iControlRoles) > 0); 
if (bHasAcess) 
{ 
    // leave the control or make sure it is visible etc 
} 
else 
{ 
    // take action to secure the control based on the action 
} 

希望有幫助。