Membership.CreateUser for multiple Membership Providers

本文关键字:Membership Providers multiple for CreateUser | 更新日期: 2023-09-27 17:56:53

我在一个站点上处理多个会员提供程序时遇到问题。

我有一个注册页面,用于创建用户并将其添加到AD域。在我有一个会员资格提供商之前,在我调用的页面上

Membership.CreateUser(txtUsername.Text, txtPassword.Text) 

它根据页面上的用户输入创建了用户名。

但是,我向 web.config 添加了另一个成员资格提供程序,以便登录页面可用于从另一个 AD 登录。现在,我的注册页面将不起作用,因为(我假设)有两个会员提供商?

我该如何解决这个问题?如何指定在调用 Member.CreateUser 时使用的提供程序?

谢谢。

编辑:

如下所述,正确的方法是:

MembershipCreateStatus newStatus = new MembershipCreateStatus();    
Membership.Providers["ProviderName"].CreateUser(txtUserName.Text, txtPassword.Text, null, null, null, true,null, out newStatus);

谢谢!

Membership.CreateUser for multiple Membership Providers

Membership.Providers["providername"].CreateUser(....);

请注意,在这种情况下只有一个 CreateUser 方法,但您可以传递不需要的其他参数的 null。

编辑:

这是使用显式提供程序调用该方法的唯一方法。我还没有尝试在AD中创建用户,所以不确定如何解决该错误,但这是另一种方法。将 CreateUser 的提供程序设置为默认提供程序,以便您可以返回到旧的 CreateUser 调用。但是现在您调整登录调用以使用其他提供商,例如

Membership.Providers["providername"].ValidateUser()

成员资格上有一个提供程序属性,其中包含成员资格提供程序的集合。 您应该能够从那里辨别要使用哪个提供程序。