0

我为我的客户创建了一个 asp 门户。他们都访问同一个网站并传入一个 tokenid,这是一个 guid。该指南告诉我他们所属的公司以及他们可以访问的内容。

我已将会员提供商设置为不允许重复的电子邮件地址和同一应用程序下的每个人。因此,考虑到这一点,我想我可以执行以下操作,以允许他们使用相同的电子邮件帐户在多个公司注册。

  1. 为每个令牌(每个公司)创建一个会员提供程序应用程序。
  2. 编写一个脚本,查找所有基于此 guid 的帐户并将它们放在适当的应用程序下

这行得通吗?它是否允许我的客户使用相同的电子邮件地址为每个令牌/公司创建登录名?

谢谢您的帮助!

4

1 回答 1

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

于 2013-09-30T17:13:49.360 回答