Кажется, что SignedXml.CheckSignature
работает нормально только для подписанных документов с использованием SHA1.
Я попробовал этот код, добавив алгоритм SHA256, и CheckSignature работал нормально, но классы WIF начали бросать следующее исключение:
System.Security.Cryptography.CryptographicException: указан неверный алгоритм. В этом методе вызов System.IdentityModel.Services.FederatedPassiveSecurityTokenServiceOperations.ProcessSignInRequest
Кажется, что ProcessSignInRequest использует алгоритм SHA1, который был здесь переопределен здесь:
CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription),
"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256");
Что я пропустил? Как я могу указать алгоритм в CheckSignature?