我为我的客户创建了一个asp门户。他们都访问同一个网站并传入一个令牌,这是一个guid。这个guid告诉我他们属于哪家公司以及他们有什么权利。
我将成员资格提供程序设置为不允许重复的电子邮件地址和同一应用程序下的所有人。因此,考虑到这一点,我认为我可以执行以下操作,允许他们使用相同的电子邮件帐户注册多个公司。
这会有用吗?它是否允许我的客户使用相同的电子邮件地址为每个令牌/公司创建登录?
感谢您的帮助!
答案 0 :(得分:1)
如果你编写脚本
[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