2014-04-12 1 views
0

다음 코드를 사용하여 내 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 

답변

1

OK 아마도 페이지로드에 다음 코드를 가지고 이러한 라인

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 
+0

리디렉션 페이지 (요-delivery.aspx)을 따라 무언가로 본다. If Me.User.Identity.IsAuthenticated = False Then Response.Redirect ("yo-login.aspx") End If 사용자가 로그인하지 않았기 때문에 로그인 페이지로 리디렉션되었습니다. – user1375002

+0

정확하게 내 포인트는 IsApproved 만 설정하고 IsAuthenticated 코드에는 두 가지가 있습니다. – bensonsearch

+0

감사하지만 처음이 문제가 발생했을 때 IsApproved와 IsAuthenticated가 문제가 될 수 있으므로 위의 내용을 제거했습니다. 코드를 입력하고 TextBox1.Text = Me.User.Identity.Name.ToString을 yo-delivery.aspx pageload에 넣고 사용자가 로그인하지 않았다는 것을 나타내는 아무 것도 (이름이 없음) 나타납니다. – user1375002

관련 문제