Храните пользователей OpenID в моей БД, как это делает Stackoverflow - PullRequest
0 голосов
/ 19 декабря 2011

Я создал систему входа в систему, используя OpenID, используя следующий код:

<rp:OpenIdLogin
    runat="server"
    Identifier="https://www.google.com/accounts/o8/id"
    Visible="true"
    ExampleUrl=""
    LabelText=" "
    RegisterText="Register"
    ExamplePrefix=" "
    ID="OpenIdLogin1"
    OnLoggedIn="OpenIdTextBox1_LoggedIn"
    RequestEmail="Require"
    RequestPostalCode="Request">
</rp:OpenIdLogin>                     

Он отправляет пользователя в Google для аутентификации.Я только хочу сохранить информацию о пользователе, такую ​​как электронная почта, полное имя и пол, в моей БД.

Я написал следующий код для получения электронной почты из Google, но ничего не возвращается:

Imports System
Imports DotNetOpenAuth.OpenId.Extensions.AttributeExchange
Partial Class Food
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        If (Session("FetchResponse") Is Nothing) Then
            Return
        End If
        Dim fetchResponse As FetchResponse = CType(Session("FetchResponse"), FetchResponse)
        Email = fetchResponse.GetAttributeValue(WellKnownAttributes.Contact.Email)
    End Sub

    Public Property Email() As String
        Get

        End Get
        Set(ByVal value As String)

        End Set
    End Property
End Class

1 Ответ

0 голосов
/ 20 декабря 2011

Если вы используете Open Id, вы можете запросить определенную информацию у поставщика услуг. Поэтому, когда он вернулся после того, как пользователь сам авторизовался, вы можете получить информацию, предоставляемую поставщиком услуг OpenId.

Один изХороший способ запросить дополнительную информацию - использовать обмен атрибутами.

подробности о том, как можно использовать обмен атрибутами для Google, см. здесь.

Google OpenId и обмен атрибутами * 1008.*

После того, как эти параметры будут отправлены обратно Google, вам потребуется извлечь их из запроса и сохранить их в БД для дальнейшего использования.

Протокол OpenID будет предоставлять определенную информацию о пользователе, поэтомуВы должны убедиться, что это вписывается в вашу систему или нет.

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