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

发布于 2024-08-18 12:19:06 字数 648 浏览 1 评论 0原文

我正在使用简单的用户身份验证方案构建一个小型 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 中配置我的角色吗?如果是,您是否知道任何可用的实现?

I'm building a tiny web application with a simple user autentication scheme. I register the users in web.config, like this:

<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>

It's working pretty good, and I like to not having to rely on a database for this in this particular application. However, I'm surprised to find that you apparently can't configure Roles in web.config in the same manor - or am I missing something really obvious here??

Do I really have to implement a custom Role-management provider to be able to configure my roles in web.config? If yes, do you happen to know of any available implementations?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

只有影子陪我不离不弃 2024-08-25 12:19:06

我创建了 iRoleProvider 的基本实现,它使用 web.config 进行存储。在 Codeplex 上查看,Web.Config 角色提供程序

I've created a basic implementation of the iRoleProvider which uses web.config for storage. Check it out on Codeplex, Web.Config Role Provider .

尘曦 2024-08-25 12:19:06

这似乎已在之前得到解决:向在 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 的授权元素中使用这些角色,您需要使用自定义的主体对象来覆盖这些角色。

This appears to have been addressed previously: Adding Role to User Created in Web.config

However, if you are intent on doing it solely in the web.config, it would not be impossible for you to create a section in the web.config that you would use for your own role settings.

<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>

Then you could use the global.asax to configure roles in your user object using the Application_AuthenticationRequest method. I've never attempted it, but I'd imagine if you were wanting to use these roles in the authorization elements of the web.config, you'd need to use a custom Principal object to cover the roles.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文