Membership.CreateUser适用于多个会员提供商

时间:2011-05-19 19:24:22

标签: c# asp.net asp.net-membership membership-provider

我在一个网站上处理多个会员提供商时遇到了问题。

我有一个注册页面,用于创建用户并将其添加到AD域。在我有一个会员提供者之前,我打电话给

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

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

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

我该如何解决这个问题?如何在调用Membership.CreateUser?

时指定要使用的提供程序

感谢。

修改

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

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

谢谢!

2 个答案:

答案 0 :(得分:9)

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

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

修改

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

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

答案 1 :(得分:1)

Providers上有Membership个属性,其中包含collection个成员资格提供程序。您应该能够从那里辨别使用哪个提供商。