2013-11-14 6 views
0

У меня есть следующий код, который создает пользователя memebrship, а затем вызывает другие методы для вставки других данных в мою SQL-базу данных. Пользователь создается. Информация попадает в мою базу данных. Все работает так, как должно, но по какой-то причине, вместо того, чтобы отправить сообщение об успешном завершении в Literal0.text, оно всегда говорит: «Уже есть пользователь с этим адресом электронной почты». Даже после того, как пользователь успешно создан. добавлена ​​проверка сеанса («Создана»), чтобы код не запускался дважды, но все равно не повезло. Он отлично работает, просто дает неправильное сообщение в конце.Я получаю неверные данные 'MembershipCreateStatus'

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If Not Session("Created") = "True" Then 
     Literal0.Text = "" 
     Dim FName As String = FNameBox.Text.Replace("'", "*1*").Replace("""", "*2*").Replace(" ", "") 
     Dim LName As String = LNameBox.Text.Replace("'", "*1*").Replace("""", "*2*").Replace(" ", "") 
     Username = FName + "." + LName 
     Dim SecretQ As String = "Please use the Contact Us page to request a reset password" 
     Dim SecretA As String = "ergwergkqejfqeoufwqeofiheowfqpkoadmvnwo" 
     Dim psw As Int32 = (TimeOfDay.Hour * TimeOfDay.Minute) * 863490 
     Dim firstsix As String = psw.ToString().Substring(0, 6) 
     password = FNameBox.Text.Replace("'", "*1*").Replace("""", "*2*").Replace(" ", "") + firstsix + "!" 
     Dim createStatus As MembershipCreateStatus 
     Dim newUser As MembershipUser = _ 
     Membership.CreateUser(Username, password, _ 
     Email.Text, SecretQ, _ 
     SecretA, True, _ 
     createStatus) 
     Select Case createStatus 
      Case MembershipCreateStatus.Success 
       Session("Created") = "True" 
       If Not String.IsNullOrEmpty(BlogSettings.Instance.SelfRegistrationInitialRole) Then 
        Dim role As String = Roles.GetAllRoles().FirstOrDefault(Function(r) r.Equals(BlogSettings.Instance.SelfRegistrationInitialRole, StringComparison.OrdinalIgnoreCase)) 
        If Not String.IsNullOrEmpty(role) Then 
         Roles.AddUsersToRoles(New String() {Username}, New String() {role}) 
        End If 
       End If 
       Dim pf = AuthorProfile.GetProfile(Username) 
       pf = New AuthorProfile(Username) 
       pf.DisplayName = Username 
       pf.EmailAddress = Email.Text 
       pf.FirstName = FNameBox.Text.Replace("'", "*1*").Replace("""", "*2*").Replace(" ", "") 
       pf.LastName = LNameBox.Text.Replace("'", "*1*").Replace("""", "*2*").Replace(" ", "") 
       pf.[Private] = True 
       pf.Save() 
       Literal0.Text = "" 
       AddUser() 
       Exit Select 
      Case MembershipCreateStatus.DuplicateUserName 
       Literal0.Text = "There is already a user with this username." 
       Exit Select 
      Case MembershipCreateStatus.DuplicateEmail 
       Literal0.Text = "There is already a user with this email address." 
       Exit Select 
      Case MembershipCreateStatus.InvalidEmail 
       Literal0.Text = "There email address you provided in invalid." 
       Exit Select 
      Case MembershipCreateStatus.InvalidAnswer 
       Literal0.Text = "There security answer was invalid." 
       Exit Select 
      Case MembershipCreateStatus.InvalidPassword 
       Literal0.Text = "The password you provided is invalid. It must be seven characters long and have at least one non-alphanumeric character." 
       Exit Select 
      Case Else 
       Literal0.Text = "There was an unknown error; the user account was NOT created." 
       Exit Select 
     End Select 
    End If 
End Sub 

ответ

0

Я хотел бы предложить, чтобы проверить код из частей ниже:

пожалуйста, сделать несколько точек останова в приложение, мы должны проверить, если каждый раз, когда точка отладки пойдет ниже случай:

Case MembershipCreateStatus.DuplicateEmail 
       Literal0.Text = "There is already a user with this email address." 
       Exit Select 

и убедитесь, что письмо отсутствует в DataTable.

Для получения дополнительной информации о MembershipCreateStatus, пожалуйста, обратитесь к ссылке ниже:

http://msdn.microsoft.com/en-us/library/system.web.security.membershipcreatestatus.aspx

Надеется, что это полезно для вас.

+0

Я попытался, это не помогло :( –

+0

Проверьте метод AddUser(). Похоже, этот метод добавляет пользователя снова в этом случае. Это единственное, о чем я могу думать, что может быть так. –

+0

Пожалуйста, отметьте как ответ, если это сообщение поможет вам. –

Смежные вопросы