当前位置: 首页 > 编程语言 > C#

设置Context.Response.StatusCode似乎不起作用分享

时间:2023-04-10 22:50:14 C#

设置Context.Response.StatusCode似乎不起作用使用System.Web;使用Company.Cms;使用Company.Web.Handlers.Console;namespaceCompany.Web.Handlers{//////AdminHandler的摘要描述///publicclassAdminHandler:IHttpHandler{publicboolIsReusable{get{returnfalse;}}publicvoidProcessRequest(HttpContextcontext){HttpRequestrequest=context.Request;HttpResponse响应=context.Response;stringaction=request.QueryString["action"];如果(!HttpContext.Current.User.CanAdminister()){response.StatusCode=403;响应.Status="403访问被拒绝";响应。结束();返回;}if(String.IsNullOrEmpty(action)){response.StatusCode=404;response.Status="404NotFound";响应。结束();返回;}IHttpHandlerhandler=null;switch(action){case"menu":handler=newMenuHandler();休息;案例“树”:handler=newTreeHandler();“网格”:handler=newGridHandler();休息;案例“列表”:handler=newListHandler();休息;case"drop":handler=newDropHandler();休息;case"edit":handler=newEditHandler();休息;case"new":handler=newInsertHandler();休息;}if(handler==null){response.StatusCode=404;response.Status="404NotFound";响应。结束();}else{handler.ProcessRequest(context);}}}}不幸的是,当我故意指定一个无效的操作时,浏览器只显示一个空白页面,Firefox和IE都显示非浏览器错误消息。我能做错什么?编辑-IE显示错误消息,但Firefox没有。Firebug显示正确的状态。这是否意味着如果我想让浏览器显示消息,我必须自己渲染它?–deverop确实如此。浏览器根据收到的错误代码执行的操作取决于浏览器。但是您仍然可以提供适用于404的HTML。例如,查看StackOverflow的404页面。错误消息完全是手工制作的。但是,通常您希望限制从错误状态返回的数据量;您从错误请求中返回的数据越多,拒绝服务攻击面就越大。首先试试这个:protectedvoidPage_Load(objectsender,EventArgse){Response.StatusCode=404;Response.SuppressContent=true;HttpContext.Current.ApplicationInstance.CompleteRequest();}:)~我也遇到过类似的问题,只在IIS7.0中出现过。也可以试试设置上面是C#学习教程:设置Context.Response.StatusCode好像不行分享的所有内容,如果对大家有用还需要详细了解C#学习教程,希望大家多加注意——Response.TrySkipIisCustomErrors=true;本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: