使用asp.net进行JQuery用户名验证

时间:2011-09-22 16:44:02

标签: jquery asp.net validation

我正在使用由大卫病房编写的最好的encosia网站教程,以及他在网站上给出的用于即时验证用户名的示例。

以下是原帖的链接: http://encosia.com/aspnet-username-availability-checking-via-ajax/

所以这个代码的问题是虽然我使用的是自定义成员资格但是如果用户不在数据库中,则总是向我显示用户是“Available”而不是“Not Available

这是我的代码:

      protected void Username_Changed(object sender, EventArgs e)
  {
    System.Threading.Thread.Sleep(2000);

    if (Membership.GetUser(Username.Text) != null)
    {
      UserAvailability.InnerText = "Username taken, sorry.";
      UserAvailability.Attributes.Add("class", "taken");
      Button1.Enabled = false;
    }
    else
    {
      UserAvailability.InnerText = "Username available!";
      UserAvailability.Attributes.Add("class", "available");
      Button1.Enabled = true;
    }
  }

这是我的web.config:

     <connectionStrings>
    <remove name="LocalSqlServer"/>
    <add name="LocalSqlServer"
     connectionString="Data Source=.\sqlexpress;Initial Catalog=CustomMembership;Integrated Security=True"
       providerName="System.Data.SqlClient"/>
  </connectionStrings>

 <membership defaultProvider="CustomMembership">
      <providers>
        <add name="CustomMembership"
            connectionStringName="LocalSqlServer"
            enablePasswordReset="true"
            enablePasswordRetrieval="false"
            passwordFormat="Hashed"
            maxInvalidPasswordAttempts="5"
            minRequiredPasswordLength="7"
            minRequiredNonalphanumericCharacters="0"
            requiresQuestionAndAnswer="false"
            requiresUniqueEmail="true"
            passwordAttemptWindow="5"
            passwordStrengthRegularExpression=""
            type="System.Web.Security.SqlMembershipProvider" />
      </providers>
    </membership>

1 个答案:

答案 0 :(得分:1)

尝试将(Username.Text)替换为(sender为TextBox).Text,如果受保护void Username_Changed由文本框中的更改触发