会话 – Web场上的DotNetOpenAuth

会话 – Web场上的DotNetOpenAuth,第1张

概述我正在为OpenId提供商和依赖方实施DotNetOpenAuth.在这两种情况下,服务器都位于负载均衡器之后,因此对于任何HTTP请求,我们都不能假设我们将访问同一台服务器. 似乎DotNetOpenAuth depends on the Session存储待处理的请求密钥.由于服务器可能在请求之间发生变化,因此我们无法依赖标准的InProc会话.不幸的是,我们无法成功实现SQL作为Sessio 我正在为OpenID提供商和依赖方实施DotNetopenAuth.在这两种情况下,服务器都位于负载均衡器之后,因此对于任何http请求,我们都不能假设我们将访问同一台服务器.

似乎DotNetopenAuth depends on the Session存储待处理的请求密钥.由于服务器可能在请求之间发生变化,因此我们无法依赖标准的InProc会话.不幸的是,我们无法成功实现sql作为Session的存储.

我的问题是:将PendingAuthenticationRequest存储为客户端cookie是否安全?还是比使用Session差吗?

解决方法 ProvIDerEndpoint.PendingAuthenticationRequest属性仅供您方便,主要用于更简单的方案.如果它不适合你,请务必以另一种方式存储并完全忽略此属性.那里没有伤害.

最终,会话由http cookie跟踪,因此如果您愿意,可以将auth请求状态完全存储在cookie中,以便它可以在Web场环境中运行.另一种方法是不要求客户端(或服务器)通过直接在OP端点URL处理所有内容(包括身份验证),或者使用包含所有内容的查询字符串从OP端点URL重定向用户来跟踪状态您需要跟踪的州信息.请注意后一种方法,因为您将向用户公开您的状态数据以查看并可能篡改.

简而言之,您可能会也可能不会选择在sql存储中存储用户会话.那应该没问题.我认为您遇到的问题(我们通过电子邮件讨论过)是您需要实现自己的IProvIDerApplicationStore,它会将nonce和association存储在所有Web服务器共享的数据库中.这是必要的,并且与用户会话状态正交,因为它存储在应用程序级别.

总结

以上是内存溢出为你收集整理的会话 – Web场上的DotNetOpenAuth全部内容,希望文章能够帮你解决会话 – Web场上的DotNetOpenAuth所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1076959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存