2012-04-18 50 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