SqlRoleProvider + Custom Membership Provider
本文关键字:Provider Membership Custom SqlRoleProvider | 更新日期: 2023-09-27 17:56:59
是否可以将内置的 SqlRoleProvider 与自定义成员资格提供程序一起使用?这将如何实现?
@mellamokb
合并两者的某些方面? 不
同时并排使用它们? 是的(因此我问题的"使用内置的 SqlRoleProvider 以及自定义成员资格提供程序"部分)
读取两者的角色?成员资格提供程序与读取角色有什么关系?
同时对它们进行身份验证?角色提供程序与身份验证有什么关系?
会员资格提供商有什么 与阅读角色有关?
无。
角色提供程序必须执行哪些操作 使用身份验证?
无
是的,您肯定可以将 SqlRoleProvider 与自定义成员资格提供程序一起使用。他们都是独立的。
内置的 SqlMembership 提供程序和 SqlRoleProvider 共享aspnet_Users和aspnet_Application表。使用 SqlRoleProvider,每当将用户添加到角色时,它都会检查aspnet_Users表中是否存在用户(它将检查用户名+applicaitonID 组合)。如果用户不存在,它将为您创建一个。如果用户存在(这可能是使用 SqlMembershipProvider 创建用户时的情况),则只会将用户添加到角色,而不是创建用户。
所以再一次,是的,它应该有效。
我从未尝试过这个,但根据我在SqlMemberProvider和SqlRoleProvider方面的经验,我会说这是可能的。 但是,我相信 SqlRoleProvider 将要求您将成员资格数据库存储(或至少镜像)到 Aspnet_regsql.exe 工具的架构设置中,因为它需要这些表来执行返回用户列表的方法,例如RoleProvider.FindUsersInRole
。
有关实现自定义成员资格提供程序的信息,请参阅此文章:
MSDN:实现成员资格提供程序
编辑:我看得越多,就越觉得SqlMemberProvider和SqlRoleProvider之间的唯一交互级别是在SQL DB级别,所以只要你实现你的自定义MemberProvider来存储(或镜像)你的用户数据在SQL中,就像SqlMemberProvider一样,你应该是黄金。