RPM*_*984 19 asp.net cookies asp.net-mvc forms-authentication cross-platform
情况如下:
我正在尝试在网站之间共享cookie(表单身份验证).
我没有使用表单身份验证本身.我正在使用内置方法(加密,解密等),但我正在设置自己的自定义cookie.
当我在其中一个网站上设置cookie时,其他人会看到cookie,但无法解密.错误是通用"加密操作期间发生错误".
我所确保的:
我以前做过这个并且它工作正常,但在那种情况下,两个应用程序共享相同的代码库.
在这种情况下,它们是单独的应用程序.这是因为我正在构建一个解决方案,其中同一顶级域上的两个独立于平台的应用程序可以共享身份验证cookie.
任何人都可以告诉我我缺少什么,或提供替代解决方案.
我已经阅读了所有相关问题,但答案通常是2).
RPM*_*984 39
当您创建新的ASP.NET 4.5(例如ASP.NET MVC 4)应用程序时,以下行添加到web.config:
<httpRuntime targetFramework="4.5" />
Run Code Online (Sandbox Code Playgroud)
这在我的其他应用程序中不存在,可能是因为我的其他应用程序是ASP.NET 3.5应用程序,它已升级到4.5.
在新的ASP.NET Web应用程序中删除该行修复了该问题.
我认为这是由于兼容性模式值:http: //msdn.microsoft.com/en-us/library/system.web.configuration.machinekeysection.compatibilitymode.aspx
Framework45.ASP.NET 4.5的加密增强功能正在生效.如果应用程序Web.config文件的httpRuntime元素的targetFramework属性设置为"4.5",则这是默认值.
不确定我是如何删除该线解决问题.我假设应用程序有一个不同的兼容模式,因为它没有该httpRuntime
元素.
Man*_*ngu 14
处理此问题的最佳方法是使machinekey解密回退到Framework20SP2
从这篇文章:http://msdn.microsoft.com/en-us/library/system.web.configuration.machinekeysection.compatibilitymode.aspx
只需将该属性添加到.net 4.5应用程序中的machinekey即可
<machineKey validationKey="" decryptionKey="" validation="SHA1" compatibilityMode="Framework20SP2" />
Run Code Online (Sandbox Code Playgroud)
你现在不需要从httpruntime中删除targetFramework ="4.5".
归档时间: |
|
查看次数: |
11291 次 |
最近记录: |