我正在使用简单的用户身份验证方案构建一个小型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中配置我的角色?如果是,您是否碰巧知道任何可用的实现?
答案 0 :(得分:3)
我已经创建了iRoleProvider的基本实现,它使用web.config进行存储。在Codeplex上查看Web.Config Role Provider 。
答案 1 :(得分:1)
这似乎已在之前解决过: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的授权元素中使用这些角色,则需要使用自定义Principal对象来覆盖角色。