.NET 4.8 Web 窗体 + IIS 中的 FormsAuthentication.Decrypt 和 System.Web.Security.Cryptography.HomogenizingCryptoServiceWrapper.HomogenizeErrors

FormsAuthentication.Decrypt and System.Web.Security.Cryptography.HomogenizingCryptoServiceWrapper.HomogenizeErrors in .NET 4.8 Web Forms + IIS

提问人:codeMonkey 提问时间:8/8/2023 更新时间:8/8/2023 访问量:41

问:

这几个月来一直运行良好,最近几周就退出了。IIS 中托管的 .NET 4.8 Web 窗体应用:部署到服务器时工作正常,但在本地失败。同一域下虚拟路径中的两个应用(均为 .NET 4.8)在 IIS 中如下所示:

- domain.com
    - /virtualpath1
    - /virtualpath2

Virtualpath1 创建一个 cookie,Virtualpath2 读取它。FormsAuthentication

我在域级别和两个虚拟目录路径(HMACSHA256 + AES)上设置了相同的值。machineKey

就在刚刚过去的几周里,突然从 Virtualpath2 调用时,我收到以下错误:FormsAuthentication.Decrypt

加密操作期间发生错误: 在 System.Web.Security.Cryptography.HomogenizingCryptoServiceWrapper.HomogenizeErrors (Func'2 func,Byte [] 输入) 在 System.Web.Security.FormsAuthentication.Decrypt (字符串 encryptedTicket)

我尝试清除 cookie 和浏览器缓存,但无济于事。无论我使用什么浏览器,它也会发生。

我想知道是否有可能导致这种情况发生的NuGet包升级??

任何见解都非常感谢。谢谢。

C# .NET IIS WebForms 表单身份验证

评论

0赞 jdweng 8/8/2023
服务器上的身份验证方法是否已更改?许多服务器正在从 Windows 身份验证切换到 OAUTH2(使用令牌)。错误可能是 OAUTH 令牌,而不是加密。OAUTH2 可以由 Windows、Linux、MAC 使用,而 Windows 身份验证只能在 Windows 中使用。
0赞 codeMonkey 8/8/2023
我认为你已经暴露了可能存在的问题;原始表单身份验证让用户使用 Windows 凭据登录,然后基于该登录创建表单身份验证 cookie;第二个应用程序读取该表单 cookie。执行 Windows 身份验证的基础机制是否发生了变化?
1赞 jdweng 8/8/2023
服务器身份验证方法可能会更改。如果是这样,您需要先删除旧 cookie,然后新代码才能运行。Cookie 可能仍在使用 Windows 凭据,而不是新的 OAUTH。

答: 暂无答案