2012-09-19 22 views
0

我有兩個頁面:Members.aspxAdmins.aspx。我想讓未登錄的用戶看到他們中的任何一個,任何登錄的用戶都可以看到第一個用戶,而只有某些用戶才能看到這兩個用戶。表單身份驗證:基於用戶類別的頁面訪問

用戶的類別(「成員」或「管理員」)在登錄時從代碼中檢測到並放入會話變量中。

我可以很容易地訪問權授予任何登錄的用戶使用窗體身份驗證(基本上與described here)一些頁面,但我應該如何,以便採取帳戶沒有用戶名,但他的類別設計我web.config

請注意,用戶可以隨時更改他們的類別,所以我不能硬編碼他們的名字,我需要這是獨立於數據庫,所以我會堅持表單身份驗證登錄模式。

+0

如果您的分類== Membership.Role,則只能使用web.config。是這樣嗎? –

回答

1

你真應該看看

Asp.net roles management

而且

Filtering Site-Map Nodes Based on Security Roles

它會比試圖建立基於會話值自己的安全機制更聰明。

+0

謝謝,我想確實使用角色,因爲它似乎是最穩固的解決方案,但我的主要麻煩是瞭解如何在登錄時動態分配角色。 – etuardu

+0

'Roles.AddUserToRole(「JoeWorden」,「manager」);'按照第一個鏈接獲取關於它的完整信息。 – nunespascal

0

你可以把你的頁面中按角色分組的文件夾,併爲每個文件夾一個Web.config:

對於您的管理區,你可以使用:

<configuration> 
    <system.web> 
     <authorization> 
     <allow roles="admin"/> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
</configuration> 

併爲您的會員專區你可以使用:

<configuration> 
    <system.web> 
     <authorization> 
     <allow roles="admin"/> 
     <allow roles="member"/> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
</configuration> 
+0

在第二個塊中,這三個元素可以用''。 –

相關問題