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.Providers["providername"].CreateUser(....);
请注意,在这种情况下只有一个 CreateUser 方法,但您可以传递不需要的其他参数的 null。
编辑:
这是使用显式提供程序调用该方法的唯一方法。我还没有尝试在AD中创建用户,所以不确定如何解决该错误,但这是另一种方法。将 CreateUser 的提供程序设置为默认提供程序,以便您可以返回到旧的 CreateUser 调用。但是现在您调整登录调用以使用其他提供商,例如
Membership.Providers["providername"].ValidateUser()
成员资格上有一个提供程序属性,其中包含成员资格提供程序的集合。 您应该能够从那里辨别要使用哪个提供程序。