是否可以将内置的SqlRoleProvider与自定义成员资格提供程序一起使用?这将如何实现?
合并两者的某些方面?否
同时并排使用它们?是(因此“使用内置的SqlRoleProvider和自定义成员资格提供程序”是我的问题的一部分)
从两者中读取角色?会员提供商与阅读角色有什么关系?
同时对两者进行身份验证?角色提供程序与身份验证有什么关系?
答案 0 :(得分:0)
我从未尝试过这个,但根据我对SqlMembershipProvider和SqlRoleProvider的经验,我会说这是可能的。但是我相信SqlRoleProvider将要求您通过Aspnet_regsql.exe工具将您的成员资格数据库存储(或至少镜像)到架构设置中,因为它需要那些表格,例如RoleProvider.FindUsersInRole
返回一个用户列表。
有关实施自定义成员资格提供程序的信息,请参阅以下文章:
MSDN: Implementing a Membership Provider
编辑:我看的越多,看起来SqlMembershipProvider和SqlRoleProvider之间唯一的交互级别就是SQL DB级别,所以只要你实现自定义MembershipProvider来存储(或镜像)你的用户SQL中的数据与SqlMembershipProvider一样,你应该是金色的。
答案 1 :(得分:0)
会员提供商有什么 与阅读角色有关吗?
没有
角色提供者必须做什么 有身份验证吗?
没有
是的,您可以将SqlRoleProvider与您的自定义成员资格提供程序一起使用。他们都是独立的。
内置的SqlMembership提供程序和SqlRoleProvider共享aspnet_Users和aspnet_Application表。使用SqlRoleProvider,每当您将用户添加到角色时,如果用户存在,它将检查aspnet_Users表(它将检查用户名+应用程序ID组合)。如果用户不存在,它将为您创建一个。如果存在用户(这可能是使用SqlMembershipProvider创建用户的情况),则只会将用户添加到角色而不是创建用户。
再次,是的它应该有用。