gpt4 book ai didi

asp.net - 在同一域的两个网站之间共享 cookie

转载 作者:行者123 更新时间:2023-12-03 06:12:38 27 4
gpt4 key购买 nike

情况如下:

我正在尝试在网站之间共享 cookie(表单例份验证)。

我本身没有使用表单例份验证。我正在使用内置方法(加密、解密等),但我正在设置自己的自定义 cookie。

当我在其中一个网站上设置 cookie 时,其他网站会看到该 cookie,但无法解密它。该错误是通用的“加密操作期间发生错误”。

我所保证的:

  1. 该 Cookie 的域设置为“example.com”(这意味着子域可以访问。证明其他网站可以“看到”该 Cookie)。
  2. 两个网站共享相同的机器 key 。两者的 web.config 的解密 key 和验证 key 具有相同的值。
  3. 两个网站的表单例份验证票证版本和 Cookie 名称相同。
  4. 路径设置为“/”。

我之前已经这样做过,并且工作正常,但在这种情况下,两个应用程序共享相同的代码库。

在这种情况下,它们是单独的应用程序。这是因为我正在构建一个解决方案原型(prototype),其中同一顶级域上的两个独立于平台的应用程序可以共享身份验证 cookie。

谁能告诉我我缺少什么,或者提供替代解决方案。

我已阅读所有相关问题,但答案通常是上面的 2)。

最佳答案

当您创建新的 ASP.NET 4.5(例如 ASP.NET MVC 4)应用程序时,将以下行添加到 web.config 中:

<httpRuntime targetFramework="4.5" />

这在我的其他应用程序中不存在,可能是因为我的其他应用程序是 ASP.NET 3.5 应用程序,已升级到 4.5。

在新的 ASP.NET Web 应用程序中删除该行解决了问题。

我认为这是由于兼容模式值造成的: http://msdn.microsoft.com/en-us/library/system.web.configuration.machinekeysection.compatibilitymode.aspx

Framework45. Cryptographic enhancements for ASP.NET 4.5 are in effect. This is the default value if the application Web.config file has the targetFramework attribute of the httpRuntime element set to "4.5".

不确定我是否明白删除该行如何解决问题。我假设应用程序一具有不同的兼容性模式,因为它没有该 httpRuntime 元素。

关于asp.net - 在同一域的两个网站之间共享 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927941/

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