2012-04-18 55 views
1

如何在url中啓用'&'和其他特殊字符(如'*,@,%')而不更改註冊表值以允許iis中的受限字符。有什麼解決方案可以通過asp.net中的web.config文件解決嗎?在網址中啓用'&'和特殊字符

回答

2

您只需要編碼字符以便在URL中使用。你可以使用UrlEncode來做到這一點。

ValidateRequest="false" 

例如:

1

如果你指的是ASP.NET請求驗證阻止包含這些字符的回傳,你可以在頁面級別中加入以下屬性頁的聲明中禁用它

<%@ Page Title="Page Title" Language="C#" ValidateRequest="false" %> 

如果您不小心對回發的表單輸入執行自己的驗證,禁用此操作可能會帶來安全風險。

+0

如果不是編碼字符串的一部分,IE將不接受帶有%的URL。試試這個http://www.google.com/%b%hhjhj在IE – 2012-04-18 07:53:50

+0

感謝回覆。這篇文章是有用的,但我需要從web.config文件。在.netframework 4中有requestPathInvalidCharacters =「」選項。但是在framework3.5中沒有任何可能的方法可以從web.config中完成。 – haripds 2012-04-18 11:56:14

+0

@Arvind:你能解釋一下爲什麼你需要在URL中有無效的字符? – 2012-04-18 12:55:25

2

你不應該直接在URL中使用這些字符。您需要對這些值進行網址編碼,以使它們存在於網址中。

例如:

Server.UrlEncode("Dog & Cat"); 

會產生:

狗%20%26%20Cat

這是在URL中的法律。

+0

這種方法是一些可行的編碼網址。但在我的情況下,這是不夠的。我正在通過web.config文件搜索更簡單的方法。 – haripds 2012-04-18 11:58:18

+0

@Arvind:最好有一個例子說明爲什麼你需要在URL中有非法字符? URL中的URL編碼值將安全地轉換回所有瀏覽器/平臺上的原始字符。 – 2012-04-18 12:56:46