gpt4 book ai didi

c# - 如何在 c# mvc 中保持跨多个子域的 session ?

转载 作者:行者123 更新时间:2023-11-30 13:49:30 25 4
gpt4 key购买 nike

我正在开发的购物车应用程序在从普通页面进入提交您的详细信息页面时会跳转域。

长话短说,部署了两个应用程序副本:一个服务器用于“主”站点,另一个服务器带有在 https 上运行的 ev 证书,用于客户详细信息(包括付款;这是 PCI 合规性问题)。

我的问题是:

http://shop.domain跳转时-> https://secure.domain (然后返回,如果用户浏览回来),我怎样才能保留 session ?

使用 JSONP 跨域传递 cookie 很简单,但我不知道在远程端如何处理它们以“重新连接”到 session 。

我已经阅读了有关滚动您自己的自定义 session 提供程序等的各种内容,但我还没有找到一个不仅仅是通用建议的内容;当然没有关于如何使用它重新加入 session 的示例。

这是一个 MVC3 c# 网络应用。

最佳答案

Session 的问题在于它们保存在同一个域中。

如果您在 子域 中有 2 个应用程序,您可以随时将其附加到您的 web.config

<httpCookies domain=".domain.com"/>

这样就可以了,但如果域完全不同,最好的方法始终是推出您自己的 session 提供程序或使用现有的 session 提供程序,例如 SQL。

您可以为此使用任何缓存系统,而不是将变量附加到 session 变量中,而是将它们作为键/值对附加到缓存中,您始终可以使用 NoSQL 替代方案(大量free accounts 在那里,您可以制作原型(prototype)并进行概念验证,以便推出最终版本。

Memcached 服务器始终是一个不错的选择并且 Couchbase作为 community version免费提供。

这里的技巧是这样做:

Cache.AddObject(key + "UserInfo-name", "Bruno Alexandre");

其中 key 可以是在 session_start 上附加到 global.asax 中的查询字符串值

而不是这个

Session["UserInfo-name"] = "Bruno Alexandre";

关于c# - 如何在 c# mvc 中保持跨多个子域的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9424307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com