1

我正在写一个新的 IHttpModule。我想使用BeginRequest事件处理程序使某些带有 404 的请求无效。如何终止请求并返回 404?

4

4 回答 4

3

您可以将状态代码显式设置为 404,例如:

HttpContext.Current.Response.StatusCode = 404; 
HttpContext.Current.Response.End();

响应将停止执行。

于 2012-10-29T14:41:35.193 回答
1

你可以试试

throw new HttpException(404, "File Not Found");
于 2012-10-29T13:26:16.523 回答
1

另一种可能是:

HttpContext.Current.Response.StatusCode = 404; 
HttpContext.Current.Response.Flush(); // Sends all currently buffered output to the client.
HttpContext.Current.Response.SuppressContent = true;  // Gets or sets a value indicating whether to send HTTP content to the client.
HttpContext.Current.ApplicationInstance.CompleteRequest(); // Causes ASP.NET to bypass all events and filtering in the HTTP pipeline chain of execution and directly execute the EndRequest event.
于 2015-11-26T15:44:31.843 回答
0

您可以执行以下操作:

HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Location", l_notFoundPageUrl);
HttpContext.Current.Response.Status = "404 Not Found";
HttpContext.Current.Response.End();

将 l_notFoundPageUrl 分配给您的 404 页面。

于 2012-10-29T14:38:03.203 回答