SqlRoleProvider +自定义成员资格提供程序

时间:2011-05-20 15:03:04

标签: c# .net asp.net security

是否可以将内置的SqlRoleProvider与自定义成员资格提供程序一起使用?这将如何实现?

@mellamokb

合并两者的某些方面?

同时并排使用它们?是(因此“使用内置的SqlRoleProvider和自定义成员资格提供程序”是我的问题的一部分)

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

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

2 个答案:

答案 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创建用户的情况),则只会将用户添加到角色而不是创建用户。

再次,是的它应该有用。

相关问题