gpt4 book ai didi

用户名为 "domainname\username"的 C# Uri

转载 作者:行者123 更新时间:2023-11-30 17:01:07 25 4
gpt4 key购买 nike

我有一个字符串

<Scheme>:\\<domain>\<domainuser>:<EncryptedPassword>@servername\

我希望能够创建统一资源标识符 (URI) 并轻松访问 URI 的各个部分。在大多数情况下,使用 C# Uri 类效果很好。但是当用户作为“domainname\domainuser”提供时,我得到无效的 URI 异常。

如何在 C# 中最好地处理这个问题。

最佳答案

您必须使用 PercentEncode(/EscapeDataString) 这样的字符串。

就像上面的问题一样,在创建 URI 对象之前,用户名 "xyz_domain\abc_user"必须编码为 "xyz_domain%5Cabc_user"

稍后在提取后,您可以使用 Uri 类中的 UnescapeDataString 方法对字符串进行 PercentDecode(/UnescapeDataString)。您可以使用 C# 中的 UnescapeDataString 方法 Uri Class这是代码

public static string GetUsername(this Uri uri)
{
if (uri == null || string.IsNullOrWhiteSpace(uri.UserInfo))
return string.Empty;
var items = uri.UserInfo.Split(new[] { ':' });
//Replace precent encoding in the username.
var result = Uri.UnescapeDataString(items[0]);
return result.Length > 0 ? result : string.Empty;
}

类似的方案可以应用于 uri 字符串的任何部分。只记得将 EscapeDataStrings 转为 UnescapeDataString。

关于用户名为 "domainname\username"的 C# Uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21415874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com