【问题标题】:securing pages in a folder with user roles?保护具有用户角色的文件夹中的页面?
【发布时间】:2011-07-04 03:10:27
【问题描述】:

我在我的应用程序中管理不同文件夹中的不同角色页面。管理文件夹有所有的管理页面。用户拥有已登录用户的所有页面。

请告知我应该采用什么方式来检查用户是否有效并具有正确的权限?

我在想我应该使用会话变量,当用户登录时,我将其 ID 和用户类型保留在会话中。可以有一些更优雅、更少编码的方式吗?

用户登录的页面是一个包含近 25 个字段的详细信息页面,它具有 ajax 验证以及其他客户端和服务器端验证。

我对 asp.net 的会员提供者了解不多,也从未使用过这些,如果您有什么建议,请给我一些链接或关键字以进一步了解。

谢谢

【问题讨论】:

    标签: asp.net asp.net-2.0 asp.net-3.5 sqlmembershipprovider


    【解决方案1】:

    您可以在 web.config 中轻松管理此类配置。只需添加web.configconfiguration 部分即可。

    <location path="Admin">
      <system.web>
        <authorization>
            <deny users="?"/>               
            <allow roles="Administrator"/>
        </authorization>
      </system.web>
    </location>
    

    &lt;deny users="?"/&gt; 意味着未经身份验证的用户将无法访问Admin 文件夹

    另一个文件夹的例子,你想允许,有Manager Role

    <location path="ManagerFolder">
      <system.web>
        <authorization>
            <deny users="?"/>               
            <allow roles="Manager"/>
        </authorization>
      </system.web>
    </location>
    

    【讨论】:

    • Akhtar 谢谢,请指导如何在自定义代码 snario 中进行操作。对于注册,我使用的是自定义代码,我可以使用将用户保存在 db 表中的自定义代码吗?我的数据库中有角色列,但在这些配置之后我将如何管理?我应该将我的用户类型保留在会话变量中吗?我如何在我的圈套中使用你的指导。谢谢
    • 你可以用like来检查uesr,如果是特定的角色。 if (HttpContext.Current.User.IsInRole("RoleName"))
    • @Mhuammad Akhtar,但我需要在会话中输入用户类型吗?
    • 很抱歉我没有得到它会带来什么好处然后通过自定义代码来做?
    【解决方案2】:
    猜你喜欢
    • 2019-08-11
    • 2021-12-16
    • 2021-10-19
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2018-09-25
    • 1970-01-01
    相关资源
    最近更新 更多