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
0 意見: