通过


SqlMembershipProvider.ValidateUser(String, String) 方法

定义

验证 SQL Server 成员身份数据库中是否存在指定的用户名和密码。

public:
 override bool ValidateUser(System::String ^ username, System::String ^ password);
public override bool ValidateUser(string username, string password);
override this.ValidateUser : string * string -> bool
Public Overrides Function ValidateUser (username As String, password As String) As Boolean

参数

username
String

要验证的用户的名称。

password
String

指定用户的密码。

返回

true 如果指定的用户名和密码有效,则为否则,为 false. 如果用户在数据库中不存在,也会返回值 false

示例

以下代码示例显示了配置为使用表单身份验证和 <a0/> 的 ASP.NET 应用程序的登录页。 如果提供的用户凭据无效,则会向用户显示一条消息。 否则,将使用该方法将用户重定向到最初请求的 URL RedirectFromLoginPage

注释

此示例使用 Membership 类调用 SqlMembershipProvider 指定为 defaultProvider Web.config 文件中的指定项。 如果需要以类型 SqlMembershipProvider的形式访问默认提供程序,则可以强制转换 Provider 类的属性 Membership 。 若要以特定提供程序类型的形式访问其他配置的提供程序,可以使用其配置的名称访问它们,ProvidersMembership并将它们强制转换为特定的提供程序类型。

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Login_OnClick(object sender, EventArgs args)
{
   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.";
}


</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub Login_OnClick(sender As Object, args As  EventArgs)

   If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)
   Else
     Msg.Text = "Login failed. Please check your user name and password and try again."
   End If

End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>

注解

类调用 Membership 此方法以验证 ASP.NET 应用程序配置文件(Web.config)中指定的 SQL Server 数据库中用户的用户信息。

成功验证用户后,最后一个活动日期和上次登录日期值将更新到数据库中的当前日期和时间。

如果向 ValidateUser 该方法提供了不正确的密码,则跟踪无效密码尝试的内部计数器将递增一个。 这可能会导致用户被锁定,在调用 UnlockUser 方法清除锁定状态之前无法登录。 如果提供了正确的密码,并且用户当前未锁定,则跟踪无效密码和密码应答尝试的内部计数器将重置为零。 有关详细信息,请参阅和MaxInvalidPasswordAttemptsPasswordAttemptWindow属性。

从所有参数值中剪裁前导空格和尾随空格。

适用于

另请参阅