SignedData.Sign-Methode

[Die Sign-Methode ist für die Verwendung in den im Abschnitt Anforderungen angegebenen Betriebssystemen verfügbar. Verwenden Sie stattdessen die SignedCms-Klasse im Namespace System.Security.Cryptography.Pkcs.]

Die Sign-Methode erstellt eine digitale Signatur für den zu signierenden Inhalt. Eine digitale Signatur besteht aus einem Hash des zu signenden Inhalts, der mithilfe des privaten Schlüssels des Signaturers verschlüsselt wird. Diese Methode kann nur verwendet werden, nachdem die SignedData.Content-Eigenschaft initialisiert wurde. Wenn die Sign-Methode für ein Objekt aufgerufen wird, das bereits über eine Signatur verfügt, wird die alte Signatur ersetzt. Die Signatur wird mithilfe des SHA1-Signaturalgorithmus erstellt.

Syntax

SignedData.Sign( _
  [ ByVal Signer ], _
  [ ByVal bDetached ], _
  [ ByVal EncodingType ] _
)

Parameter

Signer [ in, optional]

Ein Verweis auf das Signer-Objekt des Signers der Daten. Das Signer-Objekt muss Zugriff auf den privaten Schlüssel des Zertifikats haben, das zum Signieren verwendet wird. Dieser Parameter kann NULL sein. Weitere Informationen finden Sie unter Hinweise.

bDetached [ in, optional]

True gibt an, dass die zu signierten Daten getrennt werden. Das bedeutet, dass der signierte Inhalt nicht als Teil des signierten Objekts enthalten ist. Um die Signatur für getrennten Inhalt zu überprüfen, muss eine Anwendung über eine Kopie des ursprünglichen Inhalts verfügen. Getrennter Inhalt wird häufig verwendet, um die Größe eines signierten Objekts zu verringern, das über das Web gesendet werden soll, wenn der Empfänger der signierten Nachricht über eine originale Kopie der signierten Daten verfügt. Der Standardwert ist False.

EncodingType [ in, optional]

Ein Wert der CAPICOM _ ENCODING _ TYPE-Enumeration, der angibt, wie die signierten Daten codiert werden sollen. Der Standardwert ist CAPICOM _ ENCODE _ BASE64. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
CAPICOM _ ENCODE _ ANY
Dieser Codierungstyp wird nur verwendet, wenn die Eingabedaten einen unbekannten Codierungstyp haben. Wenn dieser Wert verwendet wird, um den Codierungstyp der Ausgabe anzugeben, wird stattdessen CAPICOM _ ENCODE _ BASE64 verwendet. Eingeführt in CAPICOM 2.0.
_CAPICOM-CODIERUNG _ BASE64
Daten werden als Base64-codierte Zeichenfolge gespeichert.
CAPICOM _ ENCODE _ BINARY
Daten werden als reine binäre Sequenz gespeichert.

Rückgabewert

Diese Methode gibt eine Zeichenfolge zurück, die die codierten signierten Daten enthält.

Wenn diese Methode fehlschlägt, wird ein Fehler ausgelöst. Das Err-Objekt enthält zusätzliche Informationen zum Fehler.

Hinweise

Wichtig

Wenn diese Methode von einem Webskript aufgerufen wird, muss das Skript Ihren privaten Schlüssel verwenden, um eine digitale Signatur zu erstellen. Nicht vertrauenswürdigen Websites die Verwendung Ihres privaten Schlüssels zu erlauben, ist ein Sicherheitsrisiko. Ein Dialogfeld, in dem sie gefragt wird, ob die Website Ihren privaten Schlüssel verwenden kann, wird angezeigt, wenn diese Methode zum ersten Mal aufgerufen wird. Wenn Sie zulassen, dass das Skript Ihren privaten Schlüssel zum Erstellen einer digitalen Signatur verwendet und "Dieses Dialogfeld nicht mehr anzeigen" auswählt, wird das Dialogfeld nicht mehr für Skripts innerhalb dieser Domäne angezeigt, die Ihren privaten Schlüssel zum Erstellen einer digitalen Signatur verwenden. Skripts außerhalb dieser Domäne, die versuchen, Ihren privaten Schlüssel zum Erstellen einer digitalen Signatur zu verwenden, führen jedoch weiterhin dazu, dass dieses Dialogfeld angezeigt wird. Wenn Sie nicht zulassen, dass das Skript Ihren privaten Schlüssel verwendet und "Dieses Dialogfeld nicht mehr anzeigen" auswählt, wird Skripts innerhalb dieser Domäne automatisch die Möglichkeit verweigert, Ihren privaten Schlüssel zum Erstellen digitaler Signaturen zu verwenden.

Da das Erstellen einer digitalen Signatur die Verwendung eines privaten Schlüssels erfordert,erfordern webbasierte Anwendungen, die versuchen, diese Methode zu verwenden, Benutzeroberflächenaufforderungen, die es dem Benutzer ermöglichen, die Verwendung des privaten Schlüssels aus Sicherheitsgründen zu genehmigen.

Die folgenden Ergebnisse gelten für den Signer-Parameterwert:

  • Wenn der Signer-Parameter nicht NULL ist, verwendet diese Methode den privaten Schlüssel, auf den das zugeordnete Zertifikat verweist, um die Signatur zu verschlüsseln. Wenn der private Schlüssel, auf den das Zertifikat verweist, nicht verfügbar ist, schlägt die Methode fehl.
  • Wenn der Signer-Parameter NULL ist und genau ein Zertifikat im SPEICHER CURRENT USER MY enthalten ist, das Zugriff auf einen privaten Schlüssel hat, wird dieses Zertifikat zum Erstellen _ der Signatur verwendet.
  • Wenn der Signer-Parameter NULL ist, Einstellungen. Der EnablePromptForCertificateUI-Eigenschaftswert ist true, und es gibt mehrere Zertifikate im Speicher CURRENT USER MY mit einem verfügbaren privaten Schlüssel. Es wird ein Dialogfeld angezeigt, in dem der Benutzer auswählen kann, welches Zertifikat verwendet _ wird.
  • Wenn der Signer-Parameter NULL ist und die Einstellungen. Die EnablePromptForCertificateUI-Eigenschaft ist false, die Methode schlägt fehl.
  • Wenn der Signer-Parameter NULL ist und im SPEICHER CURRENT USER MY kein Zertifikat mit einem verfügbaren privaten Schlüssel vorhanden _ ist, schlägt die Methode fehl.

Anforderungen

Anforderung Wert
Verteilbare Komponente
CAPICOM 2.0 oder höher auf Windows Server 2003 und Windows XP
DLL
Capicom.dll

Weitere Informationen

Kryptografieobjekte

SignedData