我有两个页面:Members.aspx
和Admins.aspx
。我想让未登记的用户看到他们中的任何一个,任何登录的用户都看不到第一个,只有某些用户才能看到它们。
用户的类别(“成员”或“管理员”)在登录时从代码中检测到,并放入会话变量中。
我可以使用表单身份验证(基本上为described here)轻松授予任何已登录用户访问某个页面的权限,但我应该如何设计我的web.config
以便不考虑用户名,而是他的类别?
请注意,用户可以随时更改其类别,因此我无法对其名称进行硬编码,我需要将其与数据库无关,因此我将坚持使用Forms Authentication登录模式。
答案 0 :(得分:1)
答案 1 :(得分:1)
我的建议是使用基于角色的身份验证。用户可以拥有一个或多个角色。 .NET有一些类可以帮助您管理用户及其角色。
这是一个很好的教程:http://www.4guysfromrolla.com/articles/082703-1.aspx
祝你好运。答案 2 :(得分: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>