0

我有两个页面:Members.aspxAdmins.aspx. 我想让未登录的用户看不到他们,任何登录的用户都可以看到第一个,只有某些用户可以看到两者。

在登录时从代码中检测到用户的类别(“成员”或“管理员”),并将其放入会话变量中。

我可以使用表单身份验证轻松授予任何登录用户对某些页面的访问权限(基本上如此处所述),但是我应该如何设计我web.config的以便考虑不是用户名而是他的类别?

请注意,用户可以随时更改他们的类别,所以我不能硬编码他们的名字,我需要它是独立于数据库的,所以我将坚持表单身份验证登录模式。

4

3 回答 3

1

My suggestion is to use Role-based authentication. A user can have one or more roles. .NET has classes to help you manage users along with their roles.

This is one good tutorial: http://www.4guysfromrolla.com/articles/082703-1.aspx

Good luck.

于 2012-09-19T17:46:03.053 回答
1

你真的应该调查一下

Asp.net 角色管理

根据安全角色过滤站点地图节点

这比尝试基于 Session 值构建自己的安全机制更聪明。

于 2012-09-19T17:43:19.417 回答
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>
于 2012-09-19T17:45:39.130 回答