gpt4 book ai didi

c# - 对 ashx 执行 HTTP 发布时 .net 4.5 Callcontext 中的重大更改?

转载 作者:太空宇宙 更新时间:2023-11-03 13:56:31 31 4
gpt4 key购买 nike

我刚刚安装了 .Net 4.5,并注意到当我尝试从 CallContext 中检索项目时,一个仍在 .Net 4 下运行的现有 Web 应用程序失败了,而在安装之前它运行良好并在去年完成了。

在应用程序的AuthenticateRequest 事件上,我们使用用户的身份来加载有关用户的更多安全信息。然后将其添加到 CallContext 以备后用。

例如

 protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
if (HttpContext.Current.User != null && HttpContext.Current.User.Identity.IsAuthenticated)
{
// set someValue
CallContext.SetData(ContextIdentifier, someValue);
}
}

callcontext 中的值在生命周期的后期点被检索。例如 CallContext.GetData(上下文标识符)

但是,当从 http“POST”请求请求 .ashx 时,该值现在为空,但在“GET”请求上该值是正确的。

我找不到记录为什么突然改变的原因,或者这是否是设计使然以及为什么它会影响现有的 .Net 4 应用程序?

我明显的解决方法是将数据也放在 HTTPContext 上,但不理解我不确定使用 CallContext 是否会在其他地方引起问题的原因!

任何帮助/理解将不胜感激

最佳答案

http://forum.springframework.net/showthread.php?572-CallContext-vs-ThreadStatic-vs-HttpContext

似乎是 http 管道处理了调用上下文,但我现在肯定只是因为改进才看到它

关于c# - 对 ashx 执行 HTTP 发布时 .net 4.5 Callcontext 中的重大更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12003988/

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