【问题标题】:Using role authentication without the "Membership" table使用没有“成员资格”表的角色身份验证
【发布时间】:2012-08-12 20:03:51
【问题描述】:

我正在使用表单身份验证,并且我想将某些页面限制为某些角色。现在每个人都可以在登录后访问整个应用程序。

但我想将某些页面限制为某些角色。例如“查看日志”页面。

我认为我的 web.config 文件应该如下所示:

<location path="logs/view/">
<system.web>
  <authorization>
    <allow roles="super, admin"/>
  </authorization>
</system.web>

但是我的问题是,底层应用程序的构建方式,当用户通过 api 调用成功登录时,我会返回一个“用户”对象,并且该用户的角色是该对象的一部分(User.Role == “行政”)。我真的没有参考数据库表来告诉 APP 用户具有什么角色。

如何关联

<allow roles="super, admin"/> 

我的 webconfig 中的位到 User 对象的角色属性?

【问题讨论】:

    标签: c# .net web-config forms-authentication roles


    【解决方案1】:

    您最多可以在 global.asax 中连接 HttpApplication 实例的 AuthenticateRequest 事件。在这种情况下,您需要配置 IPrincipal 实现以具有所需的设置。最简单的方法是实例化 RolePrincipal 并设置 HttpContextUser 属性。

    更新我刚刚查找了一些我在以前的答案中发布的示例实现。一种基于 ASP.NET MVC,另一种基于 Web 窗体。

    【讨论】:

      【解决方案2】:

      使用基于位置的设置。

      <configuration>
         <location path="Logon.aspx">
            <system.web>
               <authorization>
                  <allow users="?"/>
               </authorization>
            </system.web>
         </location>
      </configuration>
      

      欲了解更多信息,您可以通过MSDN 了解更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        • 1970-01-01
        相关资源
        最近更新 更多