虽然控件很好用,但代码更加灵活,不使用控件进行注册的方法:
- public partial class NewUser : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- Session["ContinueDestinationPageUrl"] = Request.QueryString["ReturnUrl"];
- }
- protected void btnAddUser_Click(object sender, EventArgs e)
- {
- if (Page.IsValid)
- {
- MembershipCreateStatus createStatus; //注册状态
- //获取注册信息
- string sUserName = tbUserName.Text;
- string sPassword = tbPassword.Text;
- string sEmail = tbEmailAddress.Text;
- string sQuestion = tbSecurityQuestion.Text;
- string sAnswer = tbSecurityAnswer.Text;
- MembershipUser newUser = Membership.CreateUser(
- HttpUtility.HtmlEncode(sUserName.Trim()),
- HttpUtility.HtmlEncode(sPassword.Trim()),
- HttpUtility.HtmlEncode(sEmail.Trim()),
- HttpUtility.HtmlEncode(sQuestion.Trim()),
- HttpUtility.HtmlEncode(sAnswer.Trim()),
- true,
- out createStatus);
- string CreateResultMessage = "";
- switch (createStatus) //根据返回状态进行信息提示
- {
- case MembershipCreateStatus.Success:
- CreateResultMessage = "» The user was successfully created. «";
- break;
- case MembershipCreateStatus.InvalidUserName:
- CreateResultMessage = "The user name was not found in the database.";
- break;
- case MembershipCreateStatus.InvalidPassword:
- CreateResultMessage = "The password is not formatted correctly.";
- break;
- case MembershipCreateStatus.InvalidQuestion:
- CreateResultMessage = "The password question is not formatted correctly.";
- break;
- case MembershipCreateStatus.InvalidAnswer:
- CreateResultMessage = "The password answer is not formatted correctly.";
- break;
- case MembershipCreateStatus.InvalidEmail:
- CreateResultMessage = "The e-mail address is not formatted correctly.";
- break;
- case MembershipCreateStatus.DuplicateUserName:
- CreateResultMessage = "The user name already exists in the database
- for the application.";
- break;
- case MembershipCreateStatus.DuplicateEmail:
- CreateResultMessage = "The e-mail address already exists in the database
- for the application.";
- break;
- case MembershipCreateStatus.UserRejected:
- CreateResultMessage = "The user was not created, for a reason defined
- by the provider.";
- break;
- case MembershipCreateStatus.InvalidProviderUserKey:
- CreateResultMessage = "The provider user key is of an invalid type or
- format.";
- break;
- case MembershipCreateStatus.DuplicateProviderUserKey:
- CreateResultMessage = "The ProviderUserKey already exists in the database
- for the application.";
- break;
- case MembershipCreateStatus.ProviderError:
- CreateResultMessage = "The provider returned an error that is not described
- by other ";
- CreateResultMessage += "MembershipCreateStatus enumeration values.";
- break;
- }
- if (createStatus != MembershipCreateStatus.Success) //失败返回提示信息
- {
- lblCreateResultMessage.CssClass = "ValidationError";
- lblCreateResultMessage.Text = CreateResultMessage;
- btnAddUser.Visible = true;
- divResultMessage.Visible = true;
- }
- else //成功依然给出提示信息,并转向returnURL
- {
- lblCreateResultMessage.CssClass = "bold";
- btnAddUser.Visible = false;
- FormsAuthentication.SetAuthCookie(newUser.UserName, false);
- string continueUrl = Session["ContinueDestinationPageUrl"].ToString();
- if (String.IsNullOrEmpty(continueUrl))
- {
- continueUrl = "~/";
- }
- Response.Redirect(continueUrl);
- }
- }
- }
- }