2011-09-22 71 views
0

我正在使用由David ward編寫的encosia網站的最佳教程,以及他的網站中給出的用於用戶名即時驗證的示例。用asp.net進行JQuery用戶名驗證

以下是原帖鏈接: 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> 
+0

無關,但爲什麼你要做System.Threading.Thread.Sleep(2000);? –

+0

當用戶輸入名稱,並點擊標籤按鈕,然後只需要更新進度,所以我用它。 – coder

+0

您是否使用aspnet_regsql創建用戶數據庫? –

回答

1

如果受保護的嘗試(如發件人文本框)。文本,替換(Username.Text)無效Username_Changed是由文本框中的更改觸發的