代码之家  ›  专栏  ›  技术社区  ›  Jakob Gade

使用web.config的角色管理提供程序?

  •  1
  • Jakob Gade  · 技术社区  · 15 年前

    我正在用一个简单的用户身份验证方案构建一个小型的Web应用程序。我在web.config中注册用户,如下所示:

    <authentication mode="Forms">
      <forms loginUrl="~/login.aspx" defaultUrl="default.aspx" ...>
        <credentials passwordFormat="SHA1">
          <user name="UserA" password="B60D121B438A380C343D5EC3C2037564B82FFEF3"/>
          <user name="UserB" password="B60D121B438A380C343D5EC3C2037564B82FFEF3"/>
        </credentials>
      </forms>
    </authentication>
    

    它工作得很好,我喜欢 在这个特定的应用程序中,必须依赖一个数据库。但是,我很惊讶地发现,显然您不能在同一个庄园中配置web.config中的角色——或者我是否遗漏了一些明显的东西?是吗?

    为了能够在web.config中配置我的角色,我真的需要实现一个自定义的角色管理提供程序吗?如果是,您是否知道任何可用的实现?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Jakob Gade    15 年前

    我创建了一个iRoleProvider的基本实现,它使用web.config进行存储。在codeplex上查看, Web.Config Role Provider .

        2
  •  1
  •   Community Nick Dandoulakis    7 年前

    这似乎是以前解决过的: Adding Role to User Created in Web.config

    但是,如果您打算只在web.config中进行此操作,则不可能在web.config中创建用于自己角色设置的节。

    <configuration>
        <configSections>
            <section name="UserRoles" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="true" requirePermission="false"/>
        </configSections>
    
        <UserRoles>
            <add key="UserA" value="Group1,Group2,Group3" />
            <add key="UserB" value="Group1,Group3" />
        </UserRoles>
    <configuration>
    

    然后,可以使用global.asax使用application_authenticationrequest方法配置用户对象中的角色。我从未尝试过,但是我可以想象,如果您想要在web.config的授权元素中使用这些角色,那么您需要使用自定义主体对象来覆盖这些角色。