authCookie并重新登录用户

时间:2011-04-12 03:05:56

标签: c# asp.net cookies session-timeout

情境: 我有一个棘手的情况,需要保持许多模块的快乐[谷歌分析等,等...]。在项目中有一个asp.net页面,它在第三方网站上发起请求(单击“处理”按钮后)并将用户重定向到第三方网站。交易在他们的网站上处理,然后控件返回到我们网站上的当前页面。您可以将此场景与Paypal处理类型联系起来,但它不是贝宝。

问题: 如果会话超时,我希望在第三方网站上完成处理后控件到达我们的网站时再次对用户进行身份验证。所以我正在考虑将authCookie信息传递给第三方网站,然后当控件到达我们的网站时,我将获得authCookie信息(想象它是场景),然后想要重新登录用户。我能做什么只是根据用户名再次创建一个authCookie?

1 个答案:

答案 0 :(得分:0)

这实际上取决于您使用的事务处理系统。如果您通过调用其API来检查事务的结果,那么响应通常具有用户ID或您可以绑定到用户ID的内容。您可以将用户名存储在cookie中,Cookie是按域或子域存储的,如果它位于与您不同的域中,则不会将其发送到事务处理网站,这很可能就是这种情况。从事务结果响应中获取或派生用户名,将其与您从cookie中获取的用户名进行比较。如果匹配,请登录用户。仅基于cookie内容对用户进行签名在许多方面都存在风险。首先,任何人都可以将cookie中的任何名称设置到浏览器中。其次,如果您只是基于cookie登录用户,那么您基本上将永远不会到期。这不是你想要的。为了增加安全性,您可以从交易结果响应中检查交易时间,如果不久之前拒绝登录。

哦,在你的问题中,你提到你“需要保持许多模块的快乐”,但你没有扩展到你的意思。所以我只是忽略了这一点。不确定一个快乐的模块是什么样的=)