限制对某些.aspx页面的访问

时间:2011-05-08 20:55:31

标签: c# asp.net authorization privileges

我的asp.net Web应用程序中有一些.aspx页面,只有管理员才能看到,所有用户都可以看到一些.aspx页面。如何限制正常用户访问用于管理员的页面?

更多关于我没有实现asp.net的授权,我的意思是说我正在使用会话和标志变量实现自己的身份验证。如何根据此方案中的权限将内容限制为用户?

4 个答案:

答案 0 :(得分:8)

将这些页面放在他们自己的目录中,并使用此目录中的web.config来限制对它们的访问。

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

不要重新发明轮子!

答案 1 :(得分:2)

我可能会创建一个自定义函数,当然是公共方法,其中包含基于角色的所有逻辑[正如您所提到的,您不希望使用asp.net的成员资格功能]以允许拒绝用户访问页面。此方法将检查用户是否符合页面的资格,为了更好的逻辑,您可以保留web.Config中所有页面的密钥。

您可以在

中创建密钥
   <appsetting>


 <add key="Page1" value="ViewOrders.aspx"/>
<add key="Page2" value="DeleteOrders.aspx"/>

现在,您可以在方法中创建for / foreach循环,以迭代页面名称的键值。我这样说是因为您以后更容易添加页面并相应地分配它们。

修改

也许,您希望看到此http://mywsat.codeplex.com/

答案 2 :(得分:1)

如果您使用自己的,可能需要创建自定义角色提供程序,并让它从会话中返回用户的角色,然后可以弥合这两个空白...

HTH。

答案 3 :(得分:0)

知道这有点旧,但以防其他人正在使用会员资格。在web.config中使用它:

<filesystem>

参考:使用C#VB构建您自己的ASP.NET 2.0网站,第二版 Christian Daire,Zak Ruvalcaba