[英]HttpUtility.UrlEncode in .net core
我正在從 .net 框架遷移到 .net 核心。 在我目前的申請中,我有:
private static string ToBase64Url(string value) => ToBase64Url(Encoding.UTF8.GetBytes(value));
private static string ToBase64Url(byte[] value)
{
var s = HttpServerUtility.UrlTokenEncode(value).ToCharArray();
return new string(s, 0, s.Length - 1);
}
我嘗試將其更改為:
private static string ToBase64Url(byte[] value)
{
var s = HttpUtility.UrlEncode(value).ToCharArray();
return new string(s, 0, s.Length - 1);
}
然而,這給了我不同的結果:
測試數據:
var text = {"alg":"RS256","typ":"JWT"};
.net 框架中的結果: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
.net 核心的結果: %7b%22alg%22%3a%22RS256%22%2c%22typ%22%3a%22JWT%22%7
這里的正確等價物應該是什么?
使用上面的鏈接,我創建了對我有用的較短版本:
private static string ToBase64Url(byte[] value) =>
Convert.ToBase64String(value).Replace('+', '-').Replace('/', '_').TrimEnd('=');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.