gpt4 book ai didi

asp.net - 为什么我的 ASP.NET 单点登录停止工作?

转载 作者:行者123 更新时间:2023-12-02 11:04:07 26 4
gpt4 key购买 nike

我有一个 .NET 2.0 Web 应用程序,它充当旧版 .NET 1.1 Web 应用程序的身份验证 stub 。因此,用户通过 2.2 应用程序登录,然后被重定向到 1.1 应用程序以执行其业务。我使用过该技术described by Scott Guthrie ,与本地 web.config 文件中的匹配机器 key ,以便两个应用程序都可以读取身份验证票证。几年来,这项技术在五个实例中对我起了作用。

到目前为止。

截至今天早上,我们按上述配置的四个配对应用程序已停止在生产中工作:在(看似)成功的身份验证尝试后,我们被退回。在尝试登录期间,我被弹回到登录页面。我检查了事件日志和 IIS 日志,没有发现任何结果。我们可以看到浏览器中已经设置了 auth cookie。我们尝试了多种浏览器(IE 和 Chrome)。周末我知道 Web 服务器上安装了十几个补丁,其中一个添加了 Framework 4.0,但我无法知道是否是这些补丁中的任何一个导致了问题。有趣的是,圣诞节前我在我的开发盒上注意到了同样的行为。从那时起,四个配对的应用程序都没有被重新部署,因此不要认为这是一个部署问题导致它蔓延到生产环境。

一对应用程序仍在运行,我们正在比较代码和配置以查看发生了什么,但到目前为止我们还没有发现任何内容(否则我不会正在写这篇文章!)

更新我弄清楚了这两个应用程序的正确做法:它通过代码处理授权。因此,我为我的问题应用程序开发了一个解决方法:

原文:

<authorization>
<allow deny="?" />
</authorization>

解决方法:

<authorization>
<allow users="*" />
</authorization>

然后我将代码添加到我的 ASPX 基页以检查身份验证 cookie:

if (Request.Cookies.Get(FormsAuthentication.FormsCookieName) == null)
Response.Redirect(System.Configuration.ConfigurationSettings.AppSettings["MembershipLoginURL"],true);

我的代码似乎正在履行以前由 ASP.NET 执行的角色,即检查用户是否获得授权。所以 - 我有一个解决方法,但谜团仍然存在。

有谁知道微软是否在过去四个月内发布了一个补丁(我们的服务器刚刚更新了四个月的补丁),该补丁禁用了 ASP.NET 在不同网络应用程序之间验证/解密 cookie 的能力.NET 的版本?

最佳答案

我收到了 Scott Guthrie 的回复...我遇到的问题是由 Windows 更新引起的。

这是修补程序:FIX: Forms authentication cookies compatibility issue between .NET Framework 1.1 and .NET Framework 2.0 SP2 ASP.NET applications after you apply the security update from security bulletin MS10-070

我已在本地 XP SP3 计算机以及临时和生产 Windows 2003 计算机上部署了此修补程序,它确实解决了问题。

关于asp.net - 为什么我的 ASP.NET 单点登录停止工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4923549/

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