【问题标题】:Shared ASP forms authentication fails on same domain共享 ASP 表单身份验证在同一域上失败
【发布时间】:2013-06-13 06:11:54
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net forms-authentication


    【解决方案1】:

    问题在于 .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" />
    

    【讨论】:

    • 在这个问题上花了将近一天的时间,以为问题出在其他地方,完全忘记了使用不同的 .NET 框架。希望这可以节省其他人的时间。
    • 作为另一种选择,您可以将 ASP.NET 4.5 应用程序设置为使用旧的加密方法和 compatibleMode="Framework20SP2"。 msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 2012-12-27
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    相关资源
    最近更新 更多