gpt4 book ai didi

.net - 自定义 "A potentially dangerous Request.Path value was detected"错误页面

转载 作者:行者123 更新时间:2023-12-04 11:42:24 25 4
gpt4 key购买 nike

当我调用带有非授权字符(例如 *)的页面时,我得到一个黄页“检测到潜在危险的 Request.Path 值”。
看起来它是一个 400 错误页面。
我的目标是自定义此页面并显示干净的错误页面或重定向到主页(我尝试了两种解决方案)。
这是我在 web.config 中写的内容:

<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="400" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="400" path="/page-non-trouvee.aspx?status=400" responseMode="ExecuteURL" />
<error statusCode="404" path="/" responseMode="ExecuteURL" />
</httpErrors>
我正在使用 IIS7。
关键是我的 400 页仍然显示为黄色错误页面。
必须有一个解决方法,因为尽管 Stack Exchange 数据资源管理器有这个问题 https://data.stackexchange.com/users&nbsp Stack Overflow 本身没有: https://stackoverflow.com/users&nbsp
有任何想法吗?

最佳答案

正如 gbianchi 提到的,你可以做一个 customErrors像这样重定向:

<customErrors mode="On" redirectMode="ResponseRedirect" defaultRedirect="/404" />

但是,这会导致带有原始路径和段的烦人的查询字符串。

如果它是 ASP.NET 应用程序,则可以在 Global.asax.cs 文件中重载 Application_Error 事件。这是在 MVC 中执行此操作的一种黑客方式:
protected void Application_Error() {
var exception = Server.GetLastError();
var httpException = exception as HttpException;
if (httpException == null) {
return;
}

var statusCode = httpException.GetHttpCode();
// HACK to get around the Request.Path errors from invalid characters
if ((statusCode == 404) || ((statusCode == 400) && httpException.Message.Contains("Request.Path"))) {
Response.Clear();
Server.ClearError();
var routeData = new RouteData();
routeData.Values["controller"] = "Error";
routeData.Values["exception"] = exception;
Response.StatusCode = statusCode;
routeData.Values["action"] = "NotFound";

// Avoid IIS7 getting in the middle
Response.TrySkipIisCustomErrors = true;
IController errorsController = new ErrorController();
HttpContextWrapper wrapper = new HttpContextWrapper(Context);
var rc = new RequestContext(wrapper, routeData);
errorsController.Execute(rc);
}
}

关于.net - 自定义 "A potentially dangerous Request.Path value was detected"错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9498180/

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