似乎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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)