设置Context.Response.StatusCode似乎不起作用
我有一个HttpHandler,代码如下:
using System; using System.Web; using Company.Cms; using Company.Web.Handlers.Console; namespace Company.Web.Handlers { /// /// Summary description for AdminHandler /// public class AdminHandler : IHttpHandler { public bool IsReusable { get { return false; } } public void ProcessRequest(HttpContext context) { HttpRequest request = context.Request; HttpResponse response = context.Response; string action = request.QueryString["action"]; if (!HttpContext.Current.User.CanAdminister()) { response.StatusCode = 403; response.Status = "403 Access Denied"; response.End(); return; } if (String.IsNullOrEmpty(action)) { response.StatusCode = 404; response.Status = "404 Not Found"; response.End(); return; } IHttpHandler handler = null; switch (action) { case "menu": handler = new MenuHandler(); break; case "tree": handler = new TreeHandler(); break; case "grid": handler = new GridHandler(); break; case "list": handler = new ListHandler(); break; case "drop": handler = new DropHandler(); break; case "edit": handler = new EditHandler(); break; case "new": handler = new InsertHandler(); break; } if (handler == null) { response.StatusCode = 404; response.Status = "404 Not Found"; response.End(); } else { handler.ProcessRequest(context); } } } }
不幸的是,当我故意指定无效操作时,浏览器只显示一个空白页面。 在Firefox和IE中都显示非浏览器错误消息。
我能做错什么?
编辑 – IE显示错误消息,但Firefox没有。
Firebug显示正确的状态。 这是否意味着如果我希望浏览器显示消息,我必须自己渲染它? – deverop
绝对是这样的。 浏览器根据收到的错误代码执行的操作取决于浏览器。 但是你仍然可以提供与404一起使用的HTML。例如,请看一下Stack Overflow的404页面 。 该错误消息完全是手工制作的。
但是,通常,您希望限制从错误状态返回的数据量; 您从错误请求返回的数据越多,拒绝服务的攻击面就越大。
首先尝试这个:
protected void Page_Load(object sender, EventArgs e) { Response.StatusCode = 404; Response.SuppressContent = true; HttpContext.Current.ApplicationInstance.CompleteRequest(); }
:)〜
我遇到了类似的问题,仅在IIS 7.0中出现。 您还可以尝试设置
上述就是C#学习教程:设置Context.Response.StatusCode似乎不起作用分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
Response.TrySkipIisCustomErrors = true;
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1042311.html