Asp.net 创建自定义成员资格后自动登录用户(不使用向导)

Asp.net 创建自定义成员资格后自动登录用户(不使用向导),asp.net,vb.net,Asp.net,Vb.net,我正在使用以下代码在我的vb.net网站上创建一个用户帐户。代码在一个按钮点击中。就创建成员身份而言,它工作正常,但当用户被重定向到下一页时,他们不会登录。显然,“newUser.IsApproved=True”不起作用。任何关于我做错了什么的想法。我希望用户在创建成员资格后自动登录 Dim createStatus As MembershipCreateStatus Try Dim newUser As System.Web.Security.Members

我正在使用以下代码在我的vb.net网站上创建一个用户帐户。代码在一个按钮点击中。就创建成员身份而言,它工作正常,但当用户被重定向到下一页时,他们不会登录。显然,“newUser.IsApproved=True”不起作用。任何关于我做错了什么的想法。我希望用户在创建成员资格后自动登录

      Dim createStatus As MembershipCreateStatus
    Try
        Dim newUser As System.Web.Security.MembershipUser = Membership.CreateUser(txtinput_Email.Value, txtinput_Password.Value, txtinput_Email.Value)
        newUser.IsApproved = True
    Catch ex As Exception
        LabelCreateAccountResults.Text = ex.Message
        ' MessageBox.Show("There's an error: " & vbCrLf & ex.ToString)
        Response.Write("<script language='javascript'>alert('" & ex.Message & "')</script>")
        Exit Sub
    End Try

    Select Case createStatus
        Case MembershipCreateStatus.Success

            LabelCreateAccountResults.Text = "The user account was successfully created!"
            Response.Redirect("yo-delivery.aspx")

        Case MembershipCreateStatus.DuplicateUserName
            LabelCreateAccountResults.Text = "That username already exists."
        Case MembershipCreateStatus.DuplicateEmail
            LabelCreateAccountResults.Text = "A user with that Email address already exists."
        Case MembershipCreateStatus.InvalidEmail
            LabelCreateAccountResults.Text = "PLease enter a VALID email address."
        Case MembershipCreateStatus.InvalidPassword
            LabelCreateAccountResults.Text = "The password entered is invalid. Please enter a passoword with at least 4 characters."
        Case Else
            LabelCreateAccountResults.Text = "Unknown Error: Account NOT created."

    End Select
Dim createStatus作为MembershipCreateStatus
尝试
Dim newUser As System.Web.Security.MembershipUser=Membership.CreateUser(txtinput\u Email.Value、txtinput\u Password.Value、txtinput\u Email.Value)
newUser.IsApproved=True
特例
LabelCreateAccountResults.Text=ex.Message
'MessageBox.Show(“出现错误:&vbCrLf&ex.ToString)
Response.Write(“警报(“&ex.Message&“)”)
出口接头
结束尝试
选择案例创建状态
案例成员身份CreateStatus.Success
LabelCreateAccountResults.Text=“用户帐户已成功创建!”
重定向(“yo delivery.aspx”)
案例成员资格CreateStatus.DuplicateUserName
LabelCreateAccountResults.Text=“该用户名已存在。”
案例成员资格CreateStatus.DuplicateEmail
LabelCreateAccountResults.Text=“具有该电子邮件地址的用户已存在。”
案例成员资格CreateStatus.InvalidEmail
LabelCreateAccountResults.Text=“请输入有效的电子邮件地址。”
案例成员资格CreateStatus.InvalidPassword
LabelCreateAccountResults.Text=“输入的密码无效。请输入至少包含4个字符的密码。”
其他情况
LabelCreateAccountResults.Text=“未知错误:未创建帐户。”
结束选择

好的,也许可以研究一下这些方面的问题

Dim username__1 As String = Username.Text
Dim password__2 As String = Password.Text

If Membership.ValidateUser(username__1, password__2) Then
    Dim ticket As New FormsAuthenticationTicket(1, username__1, DateTime.Now,      DateTime.Now.AddMinutes(20), False, String.Empty, _
        FormsAuthentication.FormsCookiePath)

    Response.Cookies.Add(New HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)) With { _
        Key .Expires = ticket.Expiration, _
        Key .Path = FormsAuthentication.FormsCookiePath _
    })

    If Not String.IsNullOrEmpty(Request.QueryString("returnurl")) Then
        Response.Redirect(Request.QueryString("returnurl"))
    End If

    Response.Redirect("~/Home")
End If

重定向页面(yodelivery.aspx)在页面加载中包含以下代码。如果Me.User.Identity.IsAuthenticated=False,则Response.Redirect(“yo login.aspx”)结束,如果因为用户未登录,他们被重定向到登录页面。正是我的观点,您只是在设置IsApproved,并且在您已进行身份验证的代码中,这是两个不同的东西,但当我第一次遇到这个问题时,我认为IsApproved和ISAuthentication可能是问题所在,所以我删除了上面的代码,并将其放入yo-delivery.aspx页面加载中:TextBox1.Text=Me.User.Identity.Name.ToString,但什么也没有得到(没有名字)我还应该注意,当我使用createuserwizard控件创建用户时,它会工作-这意味着用户在重定向页面上登录。isapproved和isauthenticated是两件截然不同的事情。认证意味着他们已经执行了登录,批准意味着他们可以被创建。如果你把其中一个拿出来,转到页面,那么是的,就没有名字了。将用户设置为经过身份验证,然后重定向页面,看看会发生什么