如果您编写脚本
[dbo].[aspnet_Membership_FindUsersByEmail]
,您会看到(默认实现)已经“按应用程序分隔”。(因为此过程将“ApplicationName”作为参数。
因此,如果您以编程方式设置
MembershipProvider.ApplicationName
http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.applicationname.aspx
然后你应该能够做你想做的事。
这是上述程序的签名:
ALTER PROCEDURE [dbo].[aspnet_Membership_FindUsersByEmail]
@ApplicationName nvarchar(256),
@EmailToMatch nvarchar(256),
@PageIndex int,
@PageSize int
AS
提醒:
您不直接处理存储过程。您使用 MembershipProvider 的 API。
但这是一个简单的测试。
MembershipProvider mp1 = Membership.Providers["App1"];
mp1.CreateUser (.................. )
MembershipProvider mp2 = Membership.Providers["App2"];
mp2.CreateUser (.................. ) /* use same email */
现在,我认为您必须在配置文件中定义每个 MembershipProvider(及其名称)。
但这是一个 MSDN 链接:
http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovidercollection.item.aspx