2010-09-03 101 views
3

我花了无数小时阅读遍布各地的文档,而且我仍然遇到了实现最新版本的DotNetOpenAuth(3.4.5.10202)中提供的经典ASP示例的问题)。使用经典ASP实现OpenID(DotNetOpenAuth)

具体而言,我不确定我需要在login.asp中更改哪些值以查看它是否有效/将对我有用。对于下面的代码,如果我想将Google用作OpenID提供商,是否将requestURL更改为www.google.com/accounts/o8/id或www.google.com/accounts/o8/ud? (StackOverflow的新用户超限额:/)

`realm = "http://" + Request.ServerVariables("HTTP_HOST") + "/classicaspdnoi/" 
thisPageUrl = "http://" + Request.ServerVariables("HTTP_HOST") + Request.ServerVariables("URL") 
requestUrl = "http://" + Request.ServerVariables("HTTP_HOST") + Request.ServerVariables("HTTP_URL")` 

我真的有一个艰难的时间,这一点,并在研究花费了约8小时以上(即谷歌搜索,直到我的手指流血,并试图消化数千页关于从OpenID到Federated登录的所有内容的文档)比我不得不花费的多。

任何意见或方向将不胜感激。

顺便说一句,我见过this post,但是在示例文件的文本之外没有很多经典ASP实现的文档。

+0

这对我没有意义。使用传统的ASP示例代码,我以前已经输入了我的gmail凭证。在阅读[这篇文章后](http://stackoverflow.com/questions/1588502/no-openid-endpoint-found-net-openid)后,我决定尝试一些愚蠢的做法,比如插入Google的URL www.google。 COM /帐号/ O8/ID。你知道些什么......它让我向谷歌询问我是否想允许我的网站进行身份验证,然后用十几个查询字符串名称/值对将我重定向回调用页面。 Ugggh。进展。但它不喜欢它。 – Brian 2010-09-03 16:39:09

回答

0

你在正确的轨道上。谷歌的OP标识符(这是什么,你必须输入做一个谷歌登录)是https://www.google.com/accounts/o8/id

  • realm是URL到您的主页
  • thisPageUrl是,供应商应后,将用户重定向回网址用户登录到提供程序。
  • 'requestUrl'是当前传入请求的完整URL,包括查询字符串。它可能带有一个OpenID响应。

因此,您可能需要更改的唯一URL是realm变量。

既然你说你已经在查询字符串中得到了一大堆回应,那么处理该响应的代码就应该用到了。你可能想要自定义实际的登录代码设置会话变量),无论您的网站需要。

DotNetOpenAuth v3.4.5中的经典ASP COM服务器确实可以让您获得Google用户的电子邮件地址。您需要稍微修改示例:

-redirectUrl = dnoi.CreateRequestWithSimpleRegistration(Request.Form("openid_identifier"), realm, thisPageUrl, "nickname,email", "fullname") 
+redirectUrl = dnoi.CreateRequestWithSimpleRegistration(Request.Form("openid_identifier"), realm, thisPageUrl, "", "email") 

这应该这样做。如果不是,Google可能需要RP发现才能成功。无论如何,RP发现是一件好事。方向是在http://blog.nerdbank.net/2008/06/why-yahoo-says-your-openid-site.html。请注意,虽然经典ASP不是我在编写帖子时想到的观众,所以您可能需要适应一些技巧。

+0

安德鲁,谢谢。我回复了Google网上论坛的帖子,但也认为我会问这个......从我设法收集的信息中,我无​​法在“客户端响应”中找回电子邮件地址。我知道他们(谷歌)没有实现openid框架的特定功能,但是可以提供一些替代方法,以便我可以找到用户的电子邮件地址以在我的网站上为他们创建存根帐户? – Brian 2010-09-04 16:51:49

+0

我已添加到我的答案中,以包含Google电子邮件解决方案。 – 2010-09-05 02:39:06