c# - 发送 HTTP header 后,Windows Auth Server 无法设置状态

标签 c# windows authentication http-headers httpexception

我有 C# n 层应用程序。通常我们使用 Forms 身份验证并且一切正常,但是当我们尝试在 Windows 上设置身份验证时,它开始在某些情况下抛出以下异常(主要是在管理中,例如当您尝试编辑用户和客户端调用服务器以获取用户详细信息时)这根本不会在 Internet Explorer 中发生。在 Firefox 和 Chrome 中它每次都会抛出它。

System.Web.HttpException (0x80004005): 
Server cannot set status after HTTP headers have been sent.
at System.Web.HttpResponse.set_StatusCode(Int32 value)
at System.Web.HttpResponseWrapper.set_StatusCode(Int32 value)
at System.Web.Mvc.HttpStatusCodeResult.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)

请问,您能否给我一些建议,哪些地方可能会出错,以及如何解决? 谢谢

最佳答案

那么,您必须查看您的代码并查看将内容写入输出流的位置。发生的事情是在您设置状态代码之前写出一些东西,而 ASP.NET 不允许这样做。

至于为什么它会发生在 FF 和 Chrome 上,您是否有任何代码试图识别它是哪个浏览器并向不同的浏览器发送不同的东西?

关于c# - 发送 HTTP header 后,Windows Auth Server 无法设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783151/

相关文章:

c# - 什么是 C# 中好的线程安全单例通用模板模式

c# - 在 C# 中获取 Windows 电源计划/方案(使用 WinAPI)

windows - 在对话框中自动单击“确定”的工具/代码

windows - 确定用于映射网络驱动器的域和用户名

java - 与 PHP 共享 Servlet session

c# - XmlReader.Create() 远程服务器返回错误 : (403) Forbidden

c# - 无法将类型 'decimal?' 隐式转换为 'decimal' 。

c# - ServiceStack 3.9.71 中缺少类型

windows - 在 Android 模拟器上运行时出现 Expo 警告

authentication - ServiceStack - 防止未经授权访问静态文件