如何阻止System.Uri对URL进行解密

本文关键字:解密 URL 何阻止 System Uri | 更新日期: 2023-09-27 18:30:00

如何阻止System.Uri类对传递到其构造函数中的编码URL进行解密?考虑以下代码:-

Uri uri = new Uri("http://foo.bar/foo%2FBar");
Console.WriteLine(uri.AbsoluteUri);
uri = new Uri("http://foo.bar/foo%2FBar", false);
Console.WriteLine(uri.AbsoluteUri);
uri = new Uri("http://foo.bar/foo%2FBar", true);
Console.WriteLine(uri.AbsoluteUri);

在每种情况下,输出都是"http://foo.bar/foo/bar".如何确保在实例化Uri实例后,Uri.AbsoluteUri将返回"http://foo.bar/foo%2FBar"?

如何阻止System.Uri对URL进行解密

Uri类不用于生成转义URI,尽管您可以使用uri.OriginalString来检索用于初始化的字符串。如果需要安全地重新编码URI,您可能应该使用UrlEncode。

此外,根据http://msdn.microsoft.com/en-us/library/9zh9wcb3.aspxUri初始值设定项中的CCD_ 3参数已被弃用,并且将始终为false。

更新:

似乎有人找到了一种方法(破解)-用URL编码的斜杠获取URL