Domanda

Il server che ospita appena wont eseguire:

SignedXml.ComputeSignature();

Ho pensato metodi fromXML e toxml tenuti piena fiducia. Ma questa è stata una sorpresa. Ora non è possibile firmare digitalmente qualsiasi documento.

Sulla ricerca in rete ho trovato questo: Utilizzando RSA chiave pubblica di crittografia in un Web Shared Hosting Environment

Chiunque ha usato questo prima o qualsiasi altra via d'uscita?

È stato utile?

Soluzione

sono stato finalmente in grado di sviluppare il sistema di attivazione online tramite di Bounty Castello API di sicurezza.

Non esiste un metodo diretto disponibile, ma l'API base può essere utilizzato per generare una firma digitale.

Altri suggerimenti

So che questo post è vecchio, ma forse qualcuno lo troverà utile: Le opere soluzione con ASP .NET 3.5 in attendibilità media:

    private XmlDocument GetSignedDoc(XmlDocument doc)
{
      X509Certificate2 certificate = null;
                    try
                    {
                        certificate = new X509Certificate2(AppDomain.CurrentDomain.BaseDirectory + licenceFile, licenceFilePass, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);

                        if (certificate == null)
                            throw new Exception("The certificate i

s null!!!");
                }
                catch (Exception ex)
                {
                    exception += "X509Certificate2 fail! Did not get certificate " + AppDomain.CurrentDomain.BaseDirectory + licenceFile;
                    exception += FormatException(ex);
                    goto SetError;
                }
            RSACryptoServiceProvider myRSASigner = null;

            try
            {
                myRSASigner = (RSACryptoServiceProvider)certificate.PrivateKey;

                if (myRSASigner == null)
                {
                    throw new Exception("No valid cert was found");
                }


                    doc = SignXmlFile(doc, myRSASigner);

           catch (Exception ex)
                {
                    exception += "SignXmlFile failed";
                    exception += FormatException(ex);
                    goto SetError;
                }

}

private static XmlDocument SignXmlFile(XmlDocument doc, RSACryptoServiceProvider myRSA)
            {
                byte[] sign_this = Encoding.UTF8.GetBytes(doc.InnerXml);
                byte[] signature = myRSA.SignData(sign_this, new SHA1CryptoServiceProvider());
                string base64_string = Convert.ToBase64String(signature);

                XmlElement Signature = doc.CreateElement("Signature");
                Signature.AppendChild(doc.CreateTextNode(base64_string));
                doc.DocumentElement.AppendChild(doc.ImportNode(Signature, true));

                return doc;
            }

Gli autori di questo articolo sono fondamentalmente di reinventare la ruota ottenendo diversi pezzi insieme al fine di ottenere un codice di lavoro. Mentre il loro approccio dovrebbe funzionare e si potrebbe inventare qualche approccio simile te stesso (prendere un po 'di codice qua e là e cercare di farlo funzionare), confermano (nella storia), che c'erano insetti che sono stati corretti e presumo non ci può essere più bug Là.

JFYI: offriamo XML href="http://www.eldos.com/sbb/net-xml.php" che lavorano in ambienti limitati perché noi ha tutto il codice scritto noi stessi e inclusa nelle nostre assemblee.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top