gpt4 book ai didi

c# - ASP.NET MVC 返回超过预期

转载 作者:行者123 更新时间:2023-11-30 20:40:43 25 4
gpt4 key购买 nike

在我的代码中,当某个异常发生时,我返回

Response.AddHeader("X-Status", "çãõáéí");
Response.Charset = "utf-8";
Response.HeaderEncoding = Encoding.UTF8;
return new HttpStatusCodeResult(403, "You lack permission X, Y and Z");

使用 Postman 我惊讶地发现了三件事:

  1. 响应的正文。它应该是空的..响应应该只包含标题,但正文实际上充满了 html/css...
  2. Content-Type header 只是“text/html”而不是“text/html charset=utf-8”
  3. 没有任何迹象表明“Response.HeaderEncoding”已设置...无论是设置为 utf8、utf32 还是 big-indian...

那么,我怎样才能“让” body 变空呢?这意味着我希望响应的内容清楚...如果你能教我编码 X-Status 以便浏览器正确显示特殊字符而不是像颠倒的问题那么加分标记...

最佳答案

这看起来并不明显,但为了绕过 IIS 错误,您需要执行以下操作:

<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Auto">
<remove statusCode="403" />
</httpErrors>
</system.webServer>

本质上,您需要覆盖/删除您要返回的错误代码的默认处理程序(在本例中为 Forbidden/403)。否则,您的 403 响应将触发 IIS 的错误处理,您将得到:

IIS generic forbidden page

我认为这是不言自明的。

这确实引入了另一个问题:这是站点范围的。 可能可以在每个操作的基础上处理响应代码(可能使用过滤器,尽管这可能在管道中太远了),但我现在不确定。

关于c# - ASP.NET MVC 返回超过预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023326/

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