寶玉的ccs1.1 For asp.net2.0建立使用者時的bug。

來源:互聯網
上載者:User

    問題:在建立使用者時,當使用者名稱已經存在時,返回的錯誤提示是“註冊新使用者的時候產生了一個錯誤。”。很奇怪,明明在建立使用者的返回狀態中有一個枚舉值“DuplicateUserName”,為什麼會提示“註冊新使用者的時候產生了一個錯誤。”呢?
    看了原始碼後(\src\Controls\User\CreateUser.cs),發現在調用建立使用者的邏輯後(CreateUserStatus createUserStatus = Users.Create(user, true);),僅作了一個判斷:createUserStatus=CreateUserStatus.Created,status = System.Web.Security.MembershipCreateStatus.Success;如status 的初始值為System.Web.Security.MembershipCreateStatus.ProviderError,這樣在使用者名稱重複後,status未被重新設定,仍然為System.Web.Security.MembershipCreateStatus.ProviderError,這樣就出現錯誤提示:註冊新使用者的時候產生了一個錯誤。
修改代碼為:

                try 
                {
                    CreateUserStatus createUserStatus = Users.Create(user, true);
                    switch(createUserStatus)
                    {
                        case CreateUserStatus.Created:
                            status = System.Web.Security.MembershipCreateStatus.Success;
                            break;
                        case CreateUserStatus.DuplicateUsername:
                            status = System.Web.Security.MembershipCreateStatus.DuplicateUserName;
                            break;
                        case CreateUserStatus.DuplicateEmailAddress:
                            status = System.Web.Security.MembershipCreateStatus.DuplicateEmail;
                            break;
                        case CreateUserStatus.DuplicateNickname:
                            // 暱稱已經存在
                            placeHolderNicknameValidator.ErrorMessage = CommunityServer.Components.ResourceManager.GetString("CreateNewAccount_CreateUserStatus_DuplicateNickname");
                            placeHolderNicknameValidator.IsValid = false;
                            return;
                        default:
                            status = System.Web.Security.MembershipCreateStatus.ProviderError;
                            break;
                    }

                }
                catch (System.Web.Security.MembershipCreateUserException exception)
                {
                    status = exception.StatusCode;
                }

    修改後,當使用者名稱重複時,錯誤提示為“對不起,您輸入的帳號已被註冊。”。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.