[英]Forms authentication Of Asp.net
我正在开发Asp.net应用程序,我的应用程序中有4个角色。 1.管理员2.用户3.经销商4.会员。 我正在使用表单身份验证,这一切都适用于单个角色(用户)。 但现在我有4个角色,我没有得到如何管理这个。 我有4个不同用户的文件夹。 如果我使用经销商帐户登录,如果我更改了用户的网址,那么它也允许我访问用户部分。 但我不想要这个。 我需要在我的应用程序中用户只能访问他的访问区域。 意味着如果您的经销商登录,那么他只能访问经销商页面或同一文件夹。
请帮我找到这个解决方案。
这里有两件事要看。 首先,如果在web.config中使用<location>
元素,则限制按角色访问每个文件夹应该足够简单,例如
<location path="Resellers">
<system.web>
<authorization>
<allow roles="Reseller"/>
<deny roles="*"/>
</authorization>
</system.web>
</location>
<location path="Users">
<system.web>
<authorization>
<allow roles="User"/>
<deny roles="*"/>
</authorization>
</system.web>
</location>
...
同样在您的个人页面中,您可以调用IsUserInRole
函数来检查您的用户是否具有访问该页面的正确角色。
您可能想要获取Beginning ASP.NET Security的副本,它有关于如何执行此操作的重要信息。
您可以使用web.config来设置权限,或者您也可以更细粒度地装饰要锁定的类或方法,如下所示:
[PrincipalPermissionAttribute(SecurityAction.Demand, Role = @"Administrators")]
所有这些都是您可以设置的角色管理器的一部分。 通过阅读开始此文章,解释该怎么做。
您需要在web.config文件中为您要限制访问的每个文件夹设置适当的身份验证设置,即
<authorization>
<deny users="?" />
<allow roles="Administrators" />
<deny users="*" />
</authorization>
仅允许以“管理员”角色访问经过验证的用户。
在每个文件夹中,您必须放置一个web.config文件,该文件限制对相关角色的访问。 例如,在resellers文件夹中,您有一个包含以下内容的web.config:
<authorization>
<deny users="*"/>
<allow roles="Resellers"/>
</authorization>
等等其他文件夹。
使用如下代码:
<location path="Users">
<system.web>
<authorization>
<allow roles="Users"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.