'da başarısız oldu Aşağıda SignedXml kodu var. Bu kod, yalnızca .NET 1.1'de mükemmel çalışır, ancak .NET 3.5'te çalıştırdığımda, signedXml.CheckSignature()
yöntemi yanlış döndürmeye devam eder. SignedXml
sınıfıyla ilgili olarak, .Net 1.1 ile 3.5 arasında bir şey değişti mi? Burada puzzeled kulüpler! Bana yardım edebilir misiniz?SignedXml.CheckSignature .NET 1.1'de çalışır, ancak .NET 3.5
SignedXml signedXml = new SignedXml();
// Get public key
Assembly assembly = Assembly.LoadFile("MyLib.Application.dll");
Stream keyStream =
assembly.GetManifestResourceStream("MyKey.xml");
StreamReader keyReader = new StreamReader(keyStream, Encoding.UTF8);
string publicKeyXml = keyReader.ReadToEnd();
keyReader.Close();
// Load and set key
DSA dsaKeyPair = DSA.Create();
dsaKeyPair.FromXmlString(publicKeyXml);
KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(new DSAKeyValue(dsaKeyPair));
signedXml.KeyInfo = keyInfo;
// Load and set data
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.PreserveWhitespace = true;
xmlDocument.LoadXml(signedXmlData);
XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");
signedXml.LoadXml((XmlElement)nodeList[0]);
string returnXml = null;
if (signedXml.CheckSignature())
{
XmlElement dataElement = signedXml.GetIdElement(xmlDocument, "LicenseElement");
returnXml = dataElement.InnerXml;
}