繁体   English   中英

Asp.net的表单身份验证

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM