以下是情况说明:
- 网站A,ASP.NET MVC 4 Web应用程序。域名:http://a.example.com
- 网站B,ASP.NET MVC 4 Web应用程序。域名:http://b.example.com
我正在尝试在这些网站之间共享一个cookie(表单验证)。
我没有使用表单验证,而是使用内置方法(Encrypt,Decrypt等),但我设置了自己的自定义cookie。
当我在其中一个网站上设置cookie时,其他网站可以看到该cookie,但无法解密它。错误是通用的“在加密操作期间发生错误”。
我已经确保以下事项:
- cookie的域设置为“example.com”(这意味着子域可以访问。证明是另一个网站可以“看到”cookie)。
- 两个网站共享相同的机器密钥。两者的web.config文件具有相同的解密密钥和验证密钥的值。
- 表单验证票证版本和cookie名称在两个网站中均相同。
- 路径设置为“/”。
我以前做过这个,并且效果很好,但在那种情况下,两个应用程序共享相同的代码库。
在这种情况下,它们是单独的应用程序。这是因为我正在原型设计解决方案,使得在同一顶级域上的两个平台无关的应用程序可以共享身份验证cookie。
有人能告诉我缺少什么,或提供替代方案吗?
我已经阅读了所有相关的问题,但答案通常是上述第2点。
targetFramework
属性,另一个(从.NET 3.5升级了一段时间)没有。在第二个网站中添加该属性解决了该问题。 - Richard Ev