ActiveDirectoryMembershipProvider用于validation用户

我想使用ActiveDirectoryMembershipProvider的ValidateUser方法来validation用户是否存在于AD中。

我在表单中输入用户名和密码。 我想实例化提供程序并调用ValidateUser

  

我只是用post测试替换真值。

  

要做我想做的事情,我是否需要向提供商提供用户名和密码,以便它可以首先连接,即系统帐户..一旦建立,我可以检查我想要validation的用户?

谢谢,J

使用ASP.NET成员资格系统,重点是您不需要实例化提供程序类或任何东西 – 您定义的那个可立即在Membership静态实例下可用。

因此,在您的情况下,只需确保配置正确,然后执行以下操作:

  if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked); else Msg.Text = "Login failed. Please check your user name and password and try again."; 

Membership将是您定义的必要类 – 只需调用静态方法并完成它! 🙂

更新:您似乎应该可以在这些行中轻松实例化多个成员资格提供程序:

  if (e.UserName.IndexOf("@contoso.com") >= 0) { e.Authenticated = Membership.Providers["ContosoSqlProvider"].ValidateUser(e.UserName, e.Password); } else if (e.UserName.IndexOf("@fabrikam.com") >= 0) { e.Authenticated = Membership.Providers["FabrikamSqlProvider"].ValidateUser(e.UserName, e.Password); } else { e.Authenticated = Membership.Provider.ValidateUser(e.UserName, e.Password); } 

基本上,您可以通过Membership.Providers["FabrikamSqlProvider"]访问它来获取特定的成员资格提供者,然后调用它上面的方法,如.ValidateUser()

基本的Membership.ValidateUser将使用您已定义为默认的成员资格提供程序 – 但它不会阻止您使用其他人!