TOP

[C#] Cancel CreateUserWizard from CreatedUser Event

1.利用CreateUserWizard 建立使用者帳號,同時將其他資料儲存在自已建立的table內,不使用aspnetdb的Profiles時
2.需要在CreatedUser後儲存資料但又必需要確認是否有正確儲存的方式。
3.如果未儲存成功,刪除已註冊的使用者帳號,並且顯示錯誤訊息。

幾個重點如下:
        protected void RegisterUser_CreatedUser(object sender,  EventArgs e)
        {        
         Result = AddUserProfile(userProfile);   
         if (Result == true)
         {
           return true;
         }
         else
         {
            Membership.DeleteUser(RegisterUser.UserName);
            HttpContext.Current.Items.Add("ErrorMessage""註冊失敗,請聯繫系統管理員!!");
            Server.Transfer(Request.Url.PathAndQuery, true);
         }
        }

       protected void RegisterUser_CreatingUser(object sender, LoginCancelEventArgs e)
        {
            if (HttpContext.Current.Items["ErrorMessage"] != null)
            {
                CustomValidator custValidator = (CustomValidator)RegisterUserWizardStep.ContentTemplateContainer.FindControl("CustomValidator1");
                custValidator.ErrorMessage = HttpContext.Current.Items["ErrorMessage"].ToString();
                custValidator.IsValid = false;
                e.Cancel = true;
            }
 
        }


<asp:CreateUserWizardStep runat="server" ID="RegisterUserWizardStep">
   <ContentTemplate>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" ValidationGroup="RegisterUserWizardStep" />
   </ContentTemplate>
</asp:CreateUserWizardStep>

參考資料:http://stackoverflow.com/questions/10277812/cancel-createuserwizard-from-createduser-event