Ich folge dieser Dokumentation:
https://learn.microsoft.com/en-us/azure ... delegation
Für den ChangeProfile-Vorgang führt die Signaturberechnung jedoch immer zu einem anderen Ergebnis Wert.
Unten ist der Code, der die Signatur generiert:
Code: Select all
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
}
Mobile version