你以前可能已经解决了这个问题。
我需要能够在没有 session 粘性的环境中使用 open id。服务器确实保留了 header 。
我正在使用 ASP.NET MVC 和 dotNetOpenId 版本 3.2.0.9177。尽管在返回响应时第 3 方网站上的身份验证顺利进行,但我收到错误并且身份验证失败。
有什么想法吗?
最佳答案
有状态
最优化的方法是编写实现IRelyingPartyApplicationStore
的自定义持久化存储。获取 OpenID RP 所需的“ secret ”,并将您的实例传递给 OpenIdRelyingParty(IRelyingPartyApplicationStore)
构造函数,或在您的 web.config file 中注册它.
无国籍
对于大多数场景来说,一个更简单的解决方案是使用无状态模式,这样就不需要在 Web 场的服务器之间共享状态。
您可以通过实例化 OpenIdRelyingParty
来激活无状态模式路过null
作为您的应用程序商店实例。调用默认构造函数将导致 DNOA 使用其内存存储,这会在服务器群中中断,因此默认构造函数是不够的。
或者,如果您使用的是 ASP.NET 控件,只需设置 Stateless = true
在控件上。
关于asp.net-mvc - 如何在无 session 负载平衡环境中配置 dotNetOpenId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1379156/