如何限制未登录/未授权的用户在ASP.NET中查看网页

时间:2012-09-23 08:17:27

标签: asp.net sql-server-2008 authentication authorization

我有一些创建的Web表单,我需要在显示其他Web表单之前检查用户是否已经过身份验证。所有用户都可以访问Default.aspxAbout.aspx页面。 我有三种类型的用户,即Admin,User and Super User。此外,我将身份验证详细信息保留在我自己的SQL Server数据库中。

我该怎么做? 提前谢谢!

1 个答案:

答案 0 :(得分:2)

首先建立会员和角色提供者。有关于它的全部故事。我会在这里给予帮助。

这是SqlMembershipProvider的链接(您可以选择的一个选项): http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.aspx

这是SqlRoleProvider的链接(再次只能选择其中一个选项):: http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx

建立此功能后,您可以限制文件夹级别的用户/角色访问权限。将此代码放入web.config(在配置标记内):

  <location path="AdminPages">
    <system.web>
      <authorization>
        <allow roles="Administrator"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="UserPages">
    <system.web>
      <authorization>
        <allow roles="Administrator,User"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

这里几乎没有解释。根文件夹“AdminPages”将仅供角色“Administrators”中的用户使用。根文件夹“UserPages”给角色“Administrator”和“User”的用户。在这两种情况下,都不允许未知用户访问文件夹。这就是你所需要的。替代方法是创建继承自Page的类,然后处理页面访问...但是我不会这样做。