byte[] не содержит определения для concat

Я пытаюсь создать HMAC-SHA1 в своем приложении .Net Core, используя ответ, найденный на этот вопрос:

генерировать HMAC-SHA1 в C#

Однако я получаю сообщение об ошибке 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);
 }

Любое понимание и знание ценятся, спасибо.


person Mr.Smithyyy    schedule 24.03.2017    source источник
comment
Какой тип oauth_consumer_secret?   -  person DavidG    schedule 24.03.2017
comment
Я не знаю ядра asp net или чего-то еще, но языки высокого уровня обычно перегружают «+», чтобы обозначить конкатенацию строк/буферов... если это не сработает, вам, вероятно, нужен больший буфер и скопируйте их туда.   -  person Grady Player    schedule 24.03.2017


Ответы (2)


oauth_consumer_secret должен быть byte[], а вы, похоже, пытаетесь передать string. Вместо этого вы должны сделать это:

//snip
var encodedSecret = Encoding.UTF8.GetBytes(oauth_consumer_secret);
var key2 = key1.Concat(encodedSecret).ToArray();
//snip
person DavidG    schedule 24.03.2017
comment
Ах, конечно, oauth_consumer_secret была строкой. Благодарю вас! - person Mr.Smithyyy; 24.03.2017

Я подозреваю, что вам просто не хватает сборки.

using System.Linq;
person Iain Brown    schedule 24.03.2017