我可以通过guid建立我的asp会员提供者'应用程序'

时间:2013-09-30 16:44:02

标签: sql-server asp.net-mvc membership-provider

我为我的客户创建了一个asp门户。他们都访问同一个网站并传入一个令牌,这是一个guid。这个guid告诉我他们属于哪家公司以及他们有什么权利。

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

  1. 为每个令牌(针对每个公司)创建成员资格提供程序应用程序。
  2. 编写一个脚本,找到所有基于此guid的帐户并将其置于适当的应用程序
  3. 这会有用吗?它是否允许我的客户使用相同的电子邮件地址为每个令牌/公司创建登录?

    感谢您的帮助!

1 个答案:

答案 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