Подпись делегирования управления API Azure не удалась для операции ChangeProfileC#

Место общения программистов C#
Ответить
Anonymous
 Подпись делегирования управления API Azure не удалась для операции ChangeProfile

Сообщение Anonymous »

Я использую управление API Azure с делегированием и могу успешно проверить подпись для всех операций, кроме ChangeProfile.
Я следую этой документации:
https://learn.microsoft.com/en-us/azure ... delegation
Однако для операции ChangeProfile вычисление подписи всегда создает другое значение.
Ниже приведен код, который генерирует подпись:

Код: Выделить всё

public async Task OnGetAsync(
string userId,
string operation,
string returnUrl,
string salt,
string sig
) {
const string signUpOperationId = "SignUp";
const string signInOperationId = "SignIn";
const string signOutOperationId = "SignOut";
const string changePasswordOperationId = "ChangePassword";
const string changeProfileOperationId = "ChangeProfile";
const string closeAccountOperationId = "CloseAccount";

var signature = string.Empty;
using (var encoder = new HMACSHA512(Convert.FromBase64String("azure-apim-validation-key-here"))) {
switch (operation) {
case signInOperationId:
case signUpOperationId:
signature = Convert.ToBase64String(
encoder.ComputeHash(Encoding.UTF8.GetBytes($"{salt}\n{returnUrl}")));
break;
case signOutOperationId:
case changePasswordOperationId:
case closeAccountOperationId:
case changeProfileOperationId:
signature = Convert.ToBase64String(
encoder.ComputeHash(Encoding.UTF8.GetBytes($"{salt}\n{userId}")));
break;
}
}

if (sig != signature) {
// invalid signature
}

// rest of the code
}
Подпись для всех остальных операций всегда соответствует параметру запроса sig, но операция ChangeProfile постоянно не проходит проверку.


Подробнее здесь: https://stackoverflow.com/questions/798 ... -operation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»