Для моего сайта asp.net я пытался использовать функцию FB & Google Login. Я нашел учебник от ASPSNIPPETS. Теперь в этом, что я сделал, это если пользователь нажимает кнопку входа в Facebook, то сначала разрешает пользователю & получить информацию о пользователе в панели. Затем я поместил свой код, чтобы проверить, существует ли пользователь в моем db или нет. Если нет, то он вставляет пользователя &, а затем вводит код входа. Моя проблема заключается в том, что после выполнения первой строки кода она перестает выполняться дальше, так что не удается проверить, зарегистрирован ли пользователь или нет & и так далее. Я думаю, что это может быть из-за перенаправления url, который останавливает дальнейшие коды o execute. Как я могу устранить эту проблему?Facebook и Google Войти на сайт asp.net
Protected Sub Login(sender As Object, e As EventArgs)
FaceBookConnect.Authorize("user_photos,email", Request.Url.AbsoluteUri.Split("?"c)(0))
If Not String.IsNullOrEmpty(lblId.Text) Then
Dim query As String = "Select ID, email From users where [email protected]"
con.Open()
Dim cmd As New MySqlCommand(query, con)
cmd.Parameters.AddWithValue("@id", lblId.Text)
Dim dr As MySqlDataReader = cmd.ExecuteReader()
If dr.HasRows Then
'Do Login Code here
Try
Dim str As String = "select * from users where ID='" + lblId.Text + "';"
Dim cmd2 As New MySqlCommand(str, con)
Dim da As New MySqlDataAdapter(cmd2)
Response.Cookies("User_Type").Value = "users"
Response.Cookies("chkusername").Value = lblId.Text
Response.Redirect(Request.Url.AbsoluteUri)
welcome.Visible = True
Catch ex As Exception
Response.Write(ex)
End Try
Else
Try
Dim str1 As String = "INSERT INTO users (ID, DP, displayName) values('" + lblId.Text + "', '" + ProfileImage.ImageUrl.ToString + "', '" + lblName.Text + "')"
Dim adapter As New MySqlDataAdapter
Dim command As New MySqlCommand
dr.Close()
command.CommandText = str1
command.Connection = con
adapter.SelectCommand = command
command.ExecuteNonQuery()
Catch ex As Exception
Response.Write(ex)
End Try
Dim con2 As New MySqlConnection("connectionstring")
con2.Open()
Dim cmd3 As New MySqlCommand("Select ID, email From users where [email protected]", con2)
cmd3.Parameters.AddWithValue("@id", lblId.Text)
Dim dr2 As MySqlDataReader = cmd3.ExecuteReader()
If dr2.HasRows Then
'Do Login Code here
Try
Dim str As String = "select * from users where ID='" + lblId.Text + "';"
Dim cmd2 As New MySqlCommand(str, con2)
con2.Open()
Dim da As New MySqlDataAdapter(cmd3)
Response.Cookies("User_Type").Value = "users"
Response.Cookies("chkusername").Value = lblId.Text
Response.Redirect(Request.Url.AbsoluteUri)
Catch ex As Exception
Response.Write(ex)
con2.Close()
End Try
con.Close()
End If
End If
End If
con.Close()
End Sub
Второй блок сначала проверяет, является ли пользователь извлекается из фб будет существовать в моей базе данных или нет. Если нет, то сначала вставьте его в таблицу, а затем выполните логин. И если данные существуют, то он не будет вставлять и напрямую вводить пользователя в систему. Теперь предположим, что если я поставлю второй блок на другую кнопку, то этот код будет работать нормально, но я не хочу, чтобы пользователи нажимали 2 раза для входа в систему. Потому что сначала он будет получать данные пользователей из fb, а затем перестает выполнять дополнительный код, и это моя основная проблема. – SUN
Я плохо справился с этой проблемой. Пожалуйста, помогите мне, если вы можете или предложите мне, если моя логика ошибочна. – SUN
Второй блок, который я хочу: Dim con2 As New MySqlConnection ("connectionstring") con2.Open() ................. Я благодарю, что дублируется ?? –