2010-11-09 95 views
0

我正在asp.net mvc 2.0中開發一個站點。現在我必須通過添加額外字段來實現自定義用戶註冊頁面 。我使用以下代碼創建用戶,在asp.net mvc 2.0中實現自定義用戶註冊

Membership.CreateUser(userName, password); 
Roles.AddUserToRole(userName, "User"); 
UserProfile.NewUser.Initialize(userName, true); 
UserProfile.NewUser.FirstName = firstName; 
UserProfile.NewUser.LastName = lastName; 
UserProfile.NewUser.Save(); 

這裏不知何故,我可以創建用戶,但它不能驗證userName重複。根據mvc 2.0內置的創建用戶功能,它會檢查狀態。因此,如果發生重複userName,它將顯示錯誤。 但在我的情況下如何驗證userName的唯一性。

+0

你在使用哪一個提供者? – Kangkan 2010-11-09 06:46:45

+0

我正在使用sql會員供應商 – Mallikarjuna 2010-11-09 07:09:15

+0

哦,我很抱歉,我正在使用AspNetSqlMembershipProvider。 – Mallikarjuna 2010-11-09 07:10:55

回答

1

成員API已經內置重複數據刪除用戶名的功能,你只需要處理:

try 
{ 
    MembershipUser newUser = Membership.CreateUser(username, password); 

} 
catch (MembershipCreateUserException e) 
{ 
    if (e.StatusCode == MembershipCreateStatus.DuplicateUserName) 
     // Add to ModelState, or handle it however you want 
} 

MembershipCreateUserException有一個名爲的StatusCode屬性,它是所有不同MembershipCreateStatus的枚舉錯誤代碼。

您應該增強上述代碼以迎合全部的不同情況,並據此採取行動。

HTH

+0

感謝RPM .i明白了。 – Mallikarjuna 2010-11-09 10:08:10

+0

太好了。很高興你把事情解決了。 :) – RPM1984 2010-11-09 10:19:46