0

我有一个 ASP 4.0 Web 表单应用程序和一个 ASP MVC 4.5 应用程序,我需要在它们之间共享表单身份验证。但是,虽然我已经使用 fiddler 确认在对第二个应用程序的请求中设置了身份验证 cookie,但它仍然重定向到登录页面。

我在每个应用程序中都使用了相同的机器密钥,如此所述。我还创建了新项目来测试这一点,但它们确实有效。

4

1 回答 1

2

问题出在 .NET 4.5 中有加密增强功能,这意味着尽管我为每个应用程序指定了相同的机器密钥,但它们的解密方式不同。新的 ASP 4.5 项目使用 httpRuntime 元素(见下文)将 targetFramework 设置为 4.5,而第二个项目使用 .NET 4.0,因为它没有设置 targetFramework。

<httpRuntime targetFramework="4.5" />

因此,我可以在第二个项目中针对 .NET 4.5,或者,为了避免升级中的任何错误,我可以指定第二个项目在继续使用 .NET 4.0 的同时使用 .NET 4.5 中的加密增强作为机器密钥。

<machineKey compatibilityMode="Framework45" />
于 2013-06-13T06:11:54.520 回答