Проверка подписи ответа SOAPC#

Место общения программистов C#
Anonymous
Проверка подписи ответа SOAP

Сообщение Anonymous »

Мое требование — проверить подпись ответа SOAP.
Это мой код:

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

public bool VerifyXmlSignatureAsync(string xml)
{
var xmlDoc = new XmlDocument() { PreserveWhitespace = true};
xmlDoc.LoadXml(xml);

XmlNode binarySecurityTokenNode = xmlDoc.SelectSingleNode("//wsse:BinarySecurityToken", GetNamespaceManager(xmlDoc));
if (binarySecurityTokenNode == null)
return false;

byte[] certBytes = Convert.FromBase64String(binarySecurityTokenNode.InnerText);
X509Certificate2 serverCert = new(certBytes);

var signatureNode = xmlDoc.GetElementsByTagName("Signature");
SignedXmlWithId signedXml = new(xmlDoc);
signedXml.LoadXml((XmlElement?)signatureNode[0]);

return signedXml.CheckSignature(serverCert, true);
}
Метод CheckSignature возвращает false. Я пробовал разные другие способы, но ничего не помогает.

Подробнее здесь: https://stackoverflow.com/questions/787 ... p-response

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