iis - 使用经典 ASP 实现 OpenID (DotNetOpenAuth)

标签 iis asp-classic openid dotnetopenauth

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

具体来说,我不确定我需要在 login.asp 中更改哪些值才能查看它是否适用/是否适用。对于下面的代码,如果我想使用 Google 作为 OpenID 提供商,我是否将 requestURL 更改为 www.google.com/accounts/o8/id 或 www.google.com/accounts/o8/乌德? (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 到联合登录的所有内容的数千页文档)比我必须的多花费。

如有任何建议或指导,我们将不胜感激。

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

最佳答案

您走在正确的轨道上。 Google 的 OP 标识符(您必须输入才能进行 Google 登录)是 https://www.google.com/accounts/o8/id

  • realm 是您主页的 URL
  • thisPageUrl 是提供者在用户登录提供者后应将用户重定向回的 URL。
  • 'requestUrl' 是当前传入请求的完整 URL,包括查询字符串。它可能携带 OpenID 响应。

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

既然你说你已经从谷歌那里得到了一个查询字符串中有一堆东西的响应,那么处理该响应的代码应该启动。你可能想要自定义实际的登录代码(设置的部分 session 变量)到您站点需要的任何内容。

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 Discovery 都是一件好事。操作说明位于 http://blog.nerdbank.net/2008/06/why-yahoo-says-your-openid-site.html。 .请注意,虽然经典 ASP 并不是我在写这篇文章时考虑的受众,因此您可能需要稍微调整一些技术。

关于iis - 使用经典 ASP 实现 OpenID (DotNetOpenAuth),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636902/

相关文章:

asp.net - 本地 IIS 上的 Oracle ORA-12154 错误,但 Visual Studio 开发服务器上没有

asp.net - Azure云服务: how to log IIS requests

ruby - 在 Helicon Zoo 上部署 Sinatra 模板

php - openid url列表

oauth - 将session_state存储在客户端本地存储中可以吗?

c# - 绑定(bind) IIS 通配符子域

html - 我只想在我的表格中显示 3 个表格行,直到我悬停,然后我希望它显示全部

asp-classic - 将 UNC 路径与经典 ASP FileSystemObject 一起使用

sql-server - 初始服务器响应缓慢

authentication - 创建自己的 "OpenID-like system"Provider