byte[] 不包含 concat 的定义



我正在尝试使用这个问题的答案在我的.Net Core应用程序中生成HMAC-SHA1:

在 C# 中生成 HMAC-SHA1

但是,我收到byte[] does not contain a defintion for Concat的错误。我尝试在这里搜索,但我似乎没有找到答案。

此错误发生在行var key2 = key1.Concat(oauth_consumer_secret).ToArray();

using (var sha1 = SHA1.Create())
{
    var encodedStringAsByte = Encoding.UTF8.GetBytes(encodedString);
    var key1 = sha1.ComputeHash(encodedStringAsByte);
    var key2 = key1.Concat(oauth_consumer_secret).ToArray();
    var key3 = sha1.ComputeHash(key2);
    string signature = Convert.ToBase64String(key3);
 }

任何见解和知识都值得赞赏,谢谢。

我怀疑你只是缺少程序集包括

using System.Linq;

oauth_consumer_secret需要是一个byte[],而你似乎试图传递一个string。您应该改为这样做:

//snip
var encodedSecret = Encoding.UTF8.GetBytes(oauth_consumer_secret);
var key2 = key1.Concat(encodedSecret).ToArray();
//snip

最新更新