gpt4 book ai didi

asp.net-mvc-3 - .ASPXAUTH cookie 在 firebug 中可见,但无法在 C# 代码中检索

转载 作者:行者123 更新时间:2023-12-01 02:28:53 33 4
gpt4 key购买 nike

我有两个 .NET C# 项目。它们将部署在同一域下,例如域名.com。

几年后也创建了一个项目。它使用 .NET 4.0。我们称之为 MAIN_1。这个项目使用另一个外部项目来验证用户,它甚至更旧(.NET 3.5)。我们称之为 AUTH_PROJ。我正在 VS2012 中使用 MVC4 和 .NET 4.5 创建一个新项目。我们称之为 MAIN_2。 MAIN_1 和 MAIN_2 将部署在同一个域下(例如 domain.com)。我的目标是让用户在 MAIN_1 中登录并在 MAIN_2 中进行身份验证。我在网上搜索并找到了这个帖子 http://www.codeproject.com/Articles/106439/Single-Sign-On-SSO-for-cross-domain-ASP-NET-applic非常有趣和有用。我通过在 Visual Studio 2012 Professional 中制作一些简单的 MVC 项目来测试单点登录:

  • 项目 1:.NET4.5 MVC4 互联网项目。 => 网站 1
  • 项目 2:与项目 1 相同。=> 网站 2
  • 项目 3:.NET 4 MVC3 互联网项目。 => 网站 3
  • 项目 4:与项目 2 相同。=> 网站 4

  • 在这 4 个项目中,我添加了相同的机器 key 并将 domain="localhost"添加到 Web.config 文件中的表单例份验证。

    然后我测试了单点登录。
    我在网站 1 上创建了一个帐户并登录。我打开了网站 2 并且它已经登录了。酷!网站 3 和 4 相同。

    但是当我混合不同的框架时,没有任何效果。

    我在 firebug 中检查了浏览器 cookie。 .ASPXAUTH cookie 留在那里。但是,如果 cookie 是由项目 1 创建的,并且我调试了项目 3,我可以获得所有 cookie 除外 .ASPXAUTH cookie。似乎 .ASPXAUTH 依赖于框架,虽然它在 firefox 中可见,但其他框架项目看不到它。

    谁能帮我弄清楚为什么 .ASPXAUTH cookie 在 C# 代码中变得不可见,还有没有其他方法可以使单点登录工作?谢谢

    最佳答案

    在您的 4.5 项目中,尝试在 Web.config 中设置此配置开关:

    <machineKey compatibilityMode="Framework20SP1" />

    4.5 和 4.0 对表单例份验证票使用不同的加密例程。在 4.5 项目中设置上述开关应该会强制它使用与 4.0 相同的例程。见 http://blogs.msdn.com/b/webdev/archive/2012/10/23/cryptographic-improvements-in-asp-net-4-5-pt-2.aspx了解更多信息。

    关于asp.net-mvc-3 - .ASPXAUTH cookie 在 firebug 中可见,但无法在 C# 代码中检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14393463/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com