我正在尝试从 Web API 项目中删除对的依赖System.Web.dll
,但偶然发现了对HttpServerUtility.UrlTokenEncode(byte[] input)
(及其相应的解码方法)的调用,我不知道用什么替换以确保向后兼容性。文档说这种方法
使用基本 64 位数字将字节数组编码为其等效的字符串表示形式,可用于在 URL 上传输。
我尝试用Convert.ToBase64String(byte[] input)
(及其相应的解码方法)替换,这在文档中的描述非常相似:
将 8 位无符号整数数组转换为使用 base-64 数字编码的等效字符串表示形式。
但是,它们似乎并不完全等价。当Convert.FromBase64String(string input)
用于解码用 编码的字符串时HttpServerUtility
,我得到一个异常说明
输入不是有效的 Base-64 字符串,因为它包含非 base 64 字符、两个以上的填充字符或填充字符中的非法字符。
这两个转换实用程序有什么区别?消除这种依赖的正确方法是System.Web.HttpServerUtility
什么?
一些用户建议这是一个副本,但我不同意。这个问题通常是关于以 url 安全的方式对字符串进行base -64 编码,但我需要重现但HttpServerUtility
不依赖于System.Web
.