我使用以下代码使用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
答案 0 :(得分:0)
如果您使用的是Open ID,您可以向服务提供商索取某些信息。因此,一旦用户自行授权,您就可以获得OpenId服务提供商提供的信息。
要求提供其他信息的好方法之一是使用属性交换。
请点击此处了解如何使用Google的属性交换
Google OpenId and Attribute Exchange
一旦您将这些参数发回给Google,您需要从请求中提取这些参数并将其保存在数据库中以备将来使用
OpenID协议将共享用户的某些信息,因此您必须确保它是否适合您的系统。