簡體   English   中英

在不使用查詢字符串的情況下在我的URL中包含動態URL?

[英]Include dynamic URL in my URL without using query string?

ASP.NET 3.5,IIS7

在我的Global.asax的Application_BeginRequest中,我需要從請求的URL中提取一個完全獨立的URL,該URL已嵌入其中, 而不使用查詢字符串

我想出的解決方案是對整個目標URL進行十六進制編碼,就像它是一個目錄一樣,如下所示:

http://localhost/687474703A...etc...732E6D7033/irrelevantFilename.txt

對於IIS7而言,此操作將失敗,因為IIS7的ASP.NET實現不會允許大於260個字符的URL路徑

我的代碼控制了如何生成請求URL,以及如何將目標URL嵌入其中,但對目標URL值(它們是第三方URL)沒有任何控制。

如何更好地將此目標URL嵌入到請求URL中?

您可以對其進行URL編碼,也可以使用base-64對其進行編碼。 兩者通常都比十六進制編碼更緊湊。

注意:如果URL的長度超過200個字符左右,那么無論如何都不能超過260個字符。 如果網址長度超過260個字符...那么,您可以進行數學計算:-)

不過,我不太明白為什么您以后仍需要單獨的文件。 您可以使用404處理程序,也可以只針對每個請求進行解析。

順便說一句:如果可以的話,最好使用cookie或POST參數嵌入URL。 如果不是這種選擇,您還可以考慮使用URL縮短服務,例如http://bit.ly/等。這些URL確實很短。 這首先取決於URL的來源。 如果您可以控制這些URL的生成,為什么不只給每個URL一個簡短的ID,然后將它們存儲在表中,然后在“解析” URL時查找它們呢?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM