asp.net - ServiceStack google OpenID突然无法登录

标签 asp.net iis-7 dns servicestack

有一个仍处于开发阶段的站点,它使用 ServiceStack 的 Open ID 实现来登录用户。一直工作正常,今天早上突然 Google 的 OpenID 登录开始失败,Facebook 的身份验证仍然正常。不会引发任何错误,只是重定向回默认 url,并附加以下内容:

#f=Unknown

在我的本地主机上它工作完美,Google 和 FB 登录都正常,只有在生产中才会失败。我已经尝试了很多:

  1. 重新验证了我的 asp.net bin 文件夹中的每个文件,与本地和生产环境相比,没有区别。
  2. 将生产域名重新路由到我的本地主机(在主机文件中),希望逐步完成 session 的创建。运气不好,仍然可以完美登录。
  3. 通过远程桌面连接到服务器并尝试以本地主机身份登录,但失败。 (是的,WTH?)。

有什么方法可以获取身份验证发生时发生的情况的日志吗?或者有人知道可能是什么问题吗?

旁注:我最近更改了域名的 dns 设置并将其移动到这台新服务器,但那是大约 3-4 天前的事,并且一直工作正常,直到今天早上。还注意到我的 IP 上的反向 DNS 查找解析到了不同的域,现在正在对此进行调查。

更新

这个问题今天早上再次出现。我不确定是什么原因造成的,但我怀疑 Windows 自动时间同步以某种方式导致了问题。我将把它关掉并密切关注它是否会回来。另外,这个问题似乎让我的 SSL 设置陷入困惑,我必须手动重置 IIS 的 SSL 绑定(bind)才能正常工作,甚至 WebDeply 也会受到影响。很奇怪。

更新2 今天又出现问题了。我现在怀疑它与 IIS 的 Web 部署功能有某种关系,因为它是在我发布站点后立即发生的。现在还意识到我不需要重新启动,一个简单的 iisreset 似乎可以修复它。会持续关注。

最终更新 我终于找到了罪魁祸首。时间。我的虚拟服务器获得时间的速度非常快,每隔几天它就会领先于大多数其他服务器,因此身份验证将会失败。限制似乎在3-5分钟左右,在这个范围内,认证工作正常。不仅如此,它还失败了。要解决这个问题,只需启用时间同步,它就不会再出现。

最佳答案

您可以检查生产服务器时钟。 OpenID 请求与互联网时间同步以验证请求。如果时钟关闭或关闭了一段时间,只需重新启动即可解决问题。

关于asp.net - ServiceStack google OpenID突然无法登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18417826/

相关文章:

linux - 自己的 DNS 服务器不工作(尝试找出主机的 IP 时出现 SERVFAIL)

asp.net - 如何绑定(bind) DropDownList 的选定值

javascript - 如何将回发参数从 JS 传递给 VB?

ASP.NET MVC 6 (vNext) 未正确链接到文件

iis-7 - IIS 7 将 SSL 添加到一个站点,所有其他站点都响应 https 请求

asp.net - 500 内部服务器错误 IIS7 编码的 url

c++ - 以编程方式获取主机的 DNS 服务器

asp.net - 下拉列表选择的索引更改后,ModalPopupExtender 消失

iis-7 - 对于 Windows 2008 Server IIS 7 和 7.5 中的 asp.net webapi,PUT 和 DELETE 返回 404

c - 如何使用固定 DNS 服务器获取主机名的 IP?