Код для моей страницы регистрации aspx не работает - PullRequest
0 голосов
/ 03 мая 2018

Здравствуйте, следующий код для моей страницы регистрации не работает. когда я выполняю его, он обновляется и остается на той же странице. Но он должен перенаправить на страницу с именем message.aspx. Команда register работает следующим образом: человек, пытающийся зарегистрироваться, записывает в выпадающие списки свою информацию, а затем, как только они закончили, они нажимают кнопку начала, которая сохранит всю их информацию, а затем использует ее для персонализации страницы message.aspx, и человек получит по электронной почте.

вот код:

    Private Sub cmdRegister_Click(sender As Object, e As System.EventArgs) Handles cmdRegister.Click
    Dim status As MembershipCreateStatus
    Dim organization As New Org
    Dim employee As New Employee
    Dim description As New Description(25)
    Dim userMembership As MembershipUser
    Dim stringBuilder As New StringBuilder

    Try
        Membership.CreateUser( _
            txtUserName.Text, _
            txtPassword.Text, _
            txtEmail.Text, _
            "question", _
            "answer", _
            True, _
            status)

        If status.ToString = "Success" Then
            organization.GSTRate = 1
            organization.QSTRate = 1
            organization.AccountStatus = 2
            organization.Name = txtOrg.Text
            organization.Active = 1
            organization.OrgTypeID = cboType.SelectedValue
            organization.Create()
            organization = Nothing
            organization = New Org(txtOrg.Text)

            employee.Username = txtUserName.Text
            employee.OrgID = organization.ID

            employee.FirstName = txtFName.Text
            employee.LastName = txtLName.Text
            employee.Title = txtTitle.Text
            employee.Username = txtUserName.Text
            employee.IsAdmin = True
            employee.IsSupervisor = True
            employee.IsAccountant = False
            employee.IsAdvalorem = True
            employee.Email = txtEmail.Text
            employee.Phone = ""

            employee.Create()

            Roles.AddUserToRole(employee.Username, "Admin")

            userMembership = Membership.GetUser(txtUserName.Text)

            stringBuilder.Append(description.EnglishDescription)
            stringBuilder.Replace("(name)", employee.FirstName & " " & employee.LastName)
            stringBuilder.Replace("(OrgName)", organization.Name)
            stringBuilder.Replace("(username)", employee.Username)
            stringBuilder.Replace("you must activate your account", "you must <a href='https://www.advataxes.ca/login.aspx?action=activate&id=" + userMembership.ProviderUserKey.ToString + "&username=" + userMembership.UserName + "'>activate your account</a>")

            SendEmail(userMembership.Email, "Advataxes: Account created ", stringBuilder.ToString, Session("language"))
            Session("NewUserEmail") = userMembership.Email

            Response.Redirect("message.aspx?id=364")
        Else
            lblInvalidUserName.Visible = True
            If status.ToString = "DuplicateUserName" Then lblInvalidUserName.Text = "Username already exists"
        End If

    Catch ex As MembershipCreateUserException
        MsgBox(GetErrorMessage(ex.StatusCode))

    Catch ex As HttpException
        MsgBox(ex.Message)

    Finally
        userMembership = Nothing
        organization = Nothing
        employee = Nothing
        description = Nothing
    End Try
End Sub

1 Ответ

0 голосов
/ 03 мая 2018

Глядя на ваш код, я подозреваю, что выполнение кода не достигает строки Response.Redirect("message.aspx?id=364"), и из-за исключения поток переходит на перехват блока /

Две возможности, о которых я могу думать:

  1. Исключение выдается внутри метода SendEmail, если smtp не настроен
  2. Membership.CreateUser сбой из-за неправильной строки подключения к базе данных

Я предлагаю вам установить точку останова внутри метода cmdRegister_Click и пройтись по коду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...