如何在UWP App中编码/解码url字符串

时间:2015-12-16 15:40:37

标签: c# url asp.net-web-api uwp

我正在构建一个与Web-Api通信的UWP应用程序。在某些点,我在URL中发送一个字符串到Web-Api,可以由用户操作。因此,字符串可以包含可以对Web-Api做恶事的字符 例如:
这是我的UserController

[Route("api/user/{uid}")]
public User GetUser(string uid)
{
   return userRepository.GetByUid(uid);
}

为了这个例子,我们假设用户可以在文本框中手动输入uid。现在,如果他投入

../vipuser

他可以访问VipUserController。因为../是一个hirachy。

我搜索了一下,发现this SO article建议使用System.Web.UrlEncodeUnicodeSystem.Web.UrlDecode

但是由于UWP Apps不包含System.Web命名空间,我想知道是否有替代方法,我可以将其用于UWP-App吗?

2 个答案:

答案 0 :(得分:17)

for (int i = 12; i > 0; i--) { list.RemoveAt((39999 * i) + 3); list.RemoveAt((39999 * i) + 2); list.RemoveAt((39999 * i) + 1); list.RemoveAt(39999 * i); } Uri.EscapeDataString()可以解决问题。

答案 1 :(得分:0)

System.Net.WebUtility.UrlDecode上的方法更喜欢System.Net.WebUtility.UrlEncodeUri

这是因为WebUtility在“ multipart / form-data”和“ application / x-www-form-urlencoded”编码中始终处理空格()和加号(+)。