我在 Web 应用程序中使用 ASP.NET 成员资格。我在用户控件中有以下代码:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="memberRegister.ascx.cs" Inherits="UmbracoMembership.usercontrols.memberRegister" %>
<asp:LoginView ID="lvRegister" runat="server">
<AnonymousTemplate>
<asp:CreateUserWizard ID="cwMember" runat="server"
LoginCreatedUser="False" DisableCreatedUser="True"
OnCreatedUser="cwMember_CreatedUser" ContinueDestinationPageUrl="~/Umbraco/">
<WizardSteps>
<asp:CreateUserWizardStep ID="cuwStep1" runat="server">
<ContentTemplate>
<div class="row1"><label>Username:</label><asp:TextBox ID="Username" runat="server" CssClass="inner-field"></asp:TextBox></div>
<div class="row1"><label>Full Name:</label><asp:TextBox ID="FullName" runat="server" CssClass="inner-field"></asp:TextBox></div>
<div class="row1"><label>Email:</label><asp:TextBox ID="Email" runat="server" CssClass="inner-field"></asp:TextBox></div>
<div class="row1"><label>Password:</label><asp:TextBox ID="Password" runat="server" TextMode="Password" CssClass="inner-field"></asp:TextBox></div>
<div class="row1"><label>Confirm Password:</label><asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password" CssClass="inner-field"></asp:TextBox></div>
</ContentTemplate>
<CustomNavigationTemplate>
<div class="button-area">
<asp:Button ID="CreateUserButton" runat="server" Text="" CommandName="MoveNext" ValidationGroup="CreateUserWizard" CssClass="create-button"/>
</div>
</CustomNavigationTemplate>
</asp:CreateUserWizardStep>
<asp:CompleteWizardStep ID="cuwStep2" runat="server">
<ContentTemplate>
<div>Your account has been created, but still needs to be activated. <br />You will be recieving an activation email soon.</div>
</ContentTemplate>
</asp:CompleteWizardStep>
</WizardSteps>
</asp:CreateUserWizard>
</AnonymousTemplate>
</asp:LoginView>
这是代码隐藏:
public partial class memberRegister : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
// is user is already logged on, redirect to home page (doesn't make sense to register when already logged in...)
if (umbraco.library.IsLoggedOn())
Response.Redirect("~/");
}
protected void cwMember_CreatedUser(object sender, EventArgs e)
{
CreateUserWizard cuw = (CreateUserWizard)sender;
MembershipUser user = System.Web.Security.Membership.GetUser(cuw.UserName);
if (user != null)
{
//create a new GUID
string newUserGUID = System.Guid.NewGuid().ToString("N");
//get profile for this user.
UmbracoMembership.MemberProfile mp = MemberProfile.GetUserProfile(cuw.UserName);
mp.AuthGuid = newUserGUID;
mp.fullName = ((TextBox)cuw.CreateUserStep.ContentTemplateContainer.FindControl("FullName")).Text;
mp.email = ((TextBox)cuw.CreateUserStep.ContentTemplateContainer.FindControl("Email")).Text;
mp.Save();
//add user to the site members group
Roles.AddUserToRole(cuw.UserName, "RegisteredUsers");
//Send email
String fromAddress = "eample@bla.com";
String toAddress = mp.email;
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("eample@bla.com", "1234");
MailAddress _from = new MailAddress(fromAddress);
MailAddress _to = new MailAddress(toAddress);
MailMessage mMsg = new MailMessage(_from, _to);
mMsg.Subject = "Welcome!";
mMsg.Body = "Please click the following link to authorize your new account. " + "http://" + Request.ServerVariables["HTTP_HOST"] + Request.ApplicationPath.TrimEnd('/') + "/auth.aspx?a=" + user.UserName + "&b=" + newUserGUID;
smtp.Send(mMsg);
}
}
}
}
出于某种原因,在单击“创建用户”并发生回发后,用户将返回到注册页面,而不是进入完整页面。我已经尝试了一切。玩了半天各种设置。有任何想法吗?