2011-05-20 136 views
1

是否可以使用内置的SqlRoleProvider以及自定义成员资格提供程序?这将如何完成?SqlRoleProvider +自定义成员资格提供程序

@mellamokb

合并两者的某些方面?

同时使用它们吗?是的(因此“使用内置的SqlRoleProvider以及自定义会员供应商”是我的问题的一部分)

从两个角色阅读角色?会员提供者与阅读角色有什么关系?

同时对他们进行身份验证?角色提供者与身份验证有什么关系?

+0

含义?合并它们的某些方面?同时使用它们?从两个角色阅读角色?同时对他们进行身份验证?你需要清楚地描述你的意图以及你如何期待它的工作。 – mellamokb 2011-05-20 15:04:35

回答

0

会员提供者有 与阅读角色有什么关系?

什么都没有。

什么是角色提供者必须做的 与身份验证?

没有

是的,你一定能使用SqlRoleProvider沿侧您的自定义成员资格提供。他们都是独立的。

内置的SqlMembership提供程序和SqlRoleProvider共享aspnet_Users和aspnet_Application表。使用SqlRoleProvider时,无论何时将用户添加到角色,它都将检查aspnet_Users表是否存在用户(它将检查用户名+应用程序ID组合)。如果用户不存在,它将为您创建一个。如果用户存在(这可能是用户使用SqlMembershipProvider创建的情况),它只会将用户添加到角色而不创建用户。

再次,是的,它应该工作。

+0

谢谢。顺便提一下,我的问题是修辞。 – 2011-05-20 17:19:04

0

我从来没有试过这个,但根据我对SqlMembershipProvider和SqlRoleProvider的经验,我会说这是可能的。不过,我相信SqlRoleProvider将要求您通过Aspnet_regsql.exe工具将成员资格数据库存储(或至少是镜像)到架构设置中,因为它将需要那些用于返回用户列表的RoleProvider.FindUsersInRole等方法的表。

有关实现自定义的成员提供的信息,请参阅这篇文章:

MSDN: Implementing a Membership Provider

编辑:更多的我看这个样子的SqlMembershipProvider和SqlRoleProvider之间相互作用的唯一水平更是在SQL DB级别,所以再次,只要您实现自定义MembershipProvider以像SqlMembershipProvider一样的方式在SQL中存储(或镜像)您的用户数据,您应该是黄金。

+0

为了澄清起见:不,自定义成员资格提供程序无需反射SqlMembershipProvider。 – gbs 2011-05-20 17:26:04

+0

@gbs感谢您的答案中的信息,我不知道角色提供商会在添加用户时为您自动设置用户。猜猜我应该看看RoleProvider存储过程更密切一点。 – pseudocoder 2011-05-27 18:11:02

相关问题