我在Asp.net应用程序上工作,我在我的应用程序中有4个角色。1.管理2.用户3.经销商4.附属公司为此,我使用了表单身份验证,对于单个角色(用户),一切工作正常。但现在我有4个角色,我不知道如何管理它。我有4个不同用户的文件夹。如果我使用经销商帐户登录,如果我更改了用户的网址,那么它也允许我访问用户部分。但我不想这样。我需要在我的应用程序中,用户只能访问他的访问区域。意味着如果您的经销商已登录,则他只能访问经销商页面或同一文件夹,其他内容则无法访问。
请帮我找到这个解决方案。
发布于 2010-12-10 19:52:24
这里有两件事要看。首先,如果您在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的副本,它有很多关于如何做到这一点的信息。
发布于 2010-12-10 19:58:26
您可以使用web.config来设置权限,或者您也可以获得更细粒度的权限,并像这样修饰您想要锁定的类或方法:
[PrincipalPermissionAttribute(SecurityAction.Demand, Role = @"Administrators")]所有这些都是您可以设置的角色管理器的一部分。从阅读this文章开始,这篇文章解释了要做什么。
发布于 2010-12-10 19:52:16
您需要在web.config文件中为要限制访问的每个文件夹设置适当的身份验证设置。
<authorization>
<deny users="?" />
<allow roles="Administrators" />
<deny users="*" />
</authorization>将仅允许具有“管理员”角色的已验证用户访问。
https://stackoverflow.com/questions/4408501
复制相似问题