使用DotNetOpenAuth获取FetchData?

我已经实现了这里描述的这个简单代码 (vs 2010,webforms)

protected void Page_Load(object sender, EventArgs e) { var openid = new OpenIdRelyingParty(); var response = openid.GetResponse(); if (response != null && response.Status == AuthenticationStatus.Authenticated) { FormsAuthentication.RedirectFromLoginPage(response.ClaimedIdentifier, false); } } 

Clickfunction:

 protected void btnGoogle_Click(object sender, ImageClickEventArgs e) { using (OpenIdRelyingParty openid = new OpenIdRelyingParty()) { var request = openid.CreateRequest("https://www.google.com/accounts/o8/id"); request.RedirectToProvider(); } } 

问题#1

当我点击登录(通过谷歌)时,它会打开此同意屏幕 :

在此处输入图像描述

但是怎么运作呢? 我认为我必须在Google开发者控制台中创建一个API密钥才能允许用户登录。 ( 就像我在这里与myne->的其他应用程序一样

在此处输入图像描述

显然我没有创建任何localhost ”应用程序。 那怎么样仍然有效? (这是我从互联网上下载的一个演示版)。

问题2

一旦我得到结果 :

在此处输入图像描述

如何获取用户数据? (例如电子邮件) {文章没有提到它}

nb DotNetOpenAuth ver 3.4.6.10357

该行有效,因为它使用openId而不是OAuth2。 开放id是Oauth2之前的老学校。

您还应该注意:

重要提示:Google已弃用OpenID 2.0,并会在迁移期后将其关闭。 如果您的应用使用OpenID 2.0,userinfo端点或OAuth 2.0登录(早期版本),则应按迁移时间表中给出的截止日期迁移您的应用。

由于OpenId已经折旧并将在2015年4月20日之前关闭,因此我不建议使用它进行开发。

要回答请求不需要客户端ID的问题,因为它的打开而不是Oauth2只需要oauth2需要客户端ID。

推荐: Google API客户端库教程: Google Oauth2 C#