我正在構建一個廣泛使用URL編碼的網絡商店。URL編碼在處理之前丟失 - ASP.net
我有一個部門的列表&我的數據庫中用於生成鏈接的類別。這些當然是在URL發送之前編碼的。
一些典型的鏈接是...
/MySite/Store/Countertop+Equipment/Can+Openers.aspx
/MySite/Store/Dinnerware.aspx /mysite的/存儲/廚房/糕點%2f + Decorating.aspx
在我的HTTPHandler中,我調用app.Request.Path來獲取當前路徑。此調用返回的字符串不再是URL編碼,這使我無法正確解析。 一旦URL編碼丟失
/MySite/Store/Kitchen/Pastry%2f+Decorating.aspx成爲
/MySite/Store/Kitchen/Pastry/Decorating.aspx。
這顯然打破了將URL轉換爲QueryString的方法。
任何人都知道如何解決這個問題?
這裏是我的HttpHandler的核心
public void Init(System.Web.HttpApplication app)
{
app.BeginRequest += new EventHandler(Application_BeginRequest);
}
private void Application_BeginRequest(object sender, EventArgs e)
{
System.Web.HttpApplication app = (System.Web.HttpApplication)sender;
string realUrl = GetRealUrl(app.Request.Path);
if (!String.IsNullOrEmpty(realUrl))
app.Context.RewritePath(realUrl, false);
}
我真的很感謝你的幫助!
無後續問題做什麼,我需要......看樣子,解碼可以在IIS水平發生之前,.net甚至可以接到請求。我有另一篇文章,其中「〜」不是用編碼/字符呈現正確的路徑,這似乎證實了這一點。 Grr ..我不明白URLEncoding的意義在於,如果服務器在我的URL到達應用程序之前就已經有了它的方式。 –