如何在UWP应用程序中对URL字符串进行编码/解码

7

我正在构建一个与Web-Api通信的UWP应用程序。在某些时候,我会向Web-Api发送包含用户可操纵的字符串的url。由于这个原因,该字符串可能包含一些可以对Web-Api造成危害的字符。
例如:
这是我的UserController

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

为了方便起见,我们假设用户可以在文本框中手动输入uid。现在,如果他输入了:
../vipuser

他可以访问VipUserController。因为../向上一级。

我查找了一下,发现这篇SO文章推荐使用System.Web.UrlEncodeUnicodeSystem.Web.UrlDecode

但由于UWP应用程序不包括System.Web命名空间,我想知道是否有替代方法可以在UWP应用程序中使用?

2个回答

18

Uri.EscapeDataString()Uri.UnescapeDataString() 可以解决这个问题。


谢谢,我会尝试一下。 - croxy

2

建议使用System.Net.WebUtility.UrlDecodeSystem.Net.WebUtility.UrlEncode代替Uri中的方法。

这是因为WebUtility可以在"multipart/form-data"和"application/x-www-form-urlencoded"编码中一致地处理空格( )和加号(+)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接