我有一些创建的Web表单,我需要在显示其他Web表单之前检查用户是否已经过身份验证。所有用户都可以访问Default.aspx
和About.aspx
页面。
我有三种类型的用户,即Admin,User and Super User
。此外,我将身份验证详细信息保留在我自己的SQL Server数据库中。
我该怎么做? 提前谢谢!
答案 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的类,然后处理页面访问...但是我不会这样做。