共享ASP表单身份验证在同一域上失败

时间:2013-06-13 06:11:55

标签: asp.net forms-authentication

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

我在每个应用程序中使用了相同的机器密钥,如here所述。我也创建了新项目来测试它,然而它们确实可以工作。

1 个答案:

答案 0 :(得分:2)

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

<httpRuntime targetFramework="4.5" />

所以我可以在第二个项目中使用.NET 4.5,或者为了避免升级时出现任何错误,我可以指定第二个项目在.NET 4.5中使用加密增强功能,同时继续使用。 NET 4.0。

<machineKey compatibilityMode="Framework45" />