如何在Asp.Net中拦截和预处理QueryStrings
发布时间:2020-12-16 03:19:01 所属栏目:asp.Net 来源:网络整理
导读:我们通过电子邮件向客户发送注册网址.一些电子邮件客户端正在将网址转换为 url url 我认为当用户将电子邮件转发给自己时,可能会发生这种情况,此时电子邮件客户端会重新格式化原始电子邮件(可能) 例如. https://my.app.com/login.aspx?param=var 变 https://m
我们通过电子邮件向客户发送注册网址.一些电子邮件客户端正在将网址转换为
url <url> 我认为当用户将电子邮件转发给自己时,可能会发生这种情况,此时电子邮件客户端会重新格式化原始电子邮件(可能) 例如. https://my.app.com/login.aspx?param=var 变 https://my.app.com/login.aspx?param=var%20%3Chttps://my.app.com/login.aspx?param=var%3E 哪个正确生成System.Web.HttpRequestValidationException:检测到一个潜在危险的Request.QueryString值 我应该在代码中拦截这些实例并对网址进行消息处理,以便将用户重定向到网址的原始格式? Global.asax中? 解决方法
您可以在Global Application_BeginRequest中或在HttpModule中的同一事件中捕获它.
全球 using System; using System.Web; namespace MassageIncomingRequestUrl { public class Global : HttpApplication { protected void Application_BeginRequest(object sender,EventArgs e) { var app = (HttpApplication) sender; string path = app.Context.Request.Url.PathAndQuery; int pos = path.IndexOf("%20%3C"); if (pos > -1) { path = path.Substring(0,pos); app.Context.RewritePath(path); } } } } 模 using System; using System.Web; namespace MassageIncomingRequestUrl { public class UrlMungeModule : IHttpModule { #region IHttpModule Members public void Init(HttpApplication context) { context.BeginRequest += BeginRequest; } public void Dispose() { //nop } #endregion private static void BeginRequest(object sender,EventArgs e) { var app = (HttpApplication)sender; string path = app.Context.Request.Url.PathAndQuery; int pos = path.IndexOf("%20%3C"); if (pos>-1) { path = path.Substring(0,pos); app.Context.RewritePath(path); } } } } 无论您在浏览器地址中看到什么,这都将使用请求中的正确查询字符串处理您的请求.您可以采取额外的步骤从报告的网址中删除垃圾,但这主要是美学. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- 在ASP.NET Web应用程序之间传递会话数据
- asp.net-mvc – Html.BeginForm()和ajax.beginfo
- asp.net-mvc – .NET MVC的简单OpenID身份验证代
- 标签 – 如何使用像asp这样的Razor:Literal?
- asp.net-mvc – 可以在桌面应用程序开发中使用MV
- 将ASP.NET ConnectionString设置为特定的域用户
- asp.net – MVC 5使用旧表单身份验证而不是OWIN
- asp.net-web-api – 使用apicontroller对odata E
- ASP.NET 或C# 中ASCII码含中文字符的编解码处理
- iis – 将整个经典ASP网站重定向到新域名的最佳方
热点阅读