Aracılığıyla paylaş


SignedCms.ComputeSignature Yöntem

Tanım

Bir imza oluşturur ve imzayı CMS/PKCS #7 iletisine ekler.

Aşırı Yüklemeler

ComputeSignature(CmsSigner, Boolean)

Belirtilen imzayı imzalayanı kullanarak bir imza oluşturur ve imzayı CMS/PKCS #7 iletisine ekler.

ComputeSignature()

Bir imza oluşturur ve imzayı CMS/PKCS #7 iletisine ekler.

ComputeSignature(CmsSigner)

Belirtilen imzayı imzalayanı kullanarak bir imza oluşturur ve imzayı CMS/PKCS #7 iletisine ekler.

ComputeSignature(CmsSigner, Boolean)

Kaynak:
SignedCms.cs
Kaynak:
SignedCms.cs
Kaynak:
SignedCms.cs

Belirtilen imzayı imzalayanı kullanarak bir imza oluşturur ve imzayı CMS/PKCS #7 iletisine ekler.

public:
 void ComputeSignature(System::Security::Cryptography::Pkcs::CmsSigner ^ signer, bool silent);
public void ComputeSignature (System.Security.Cryptography.Pkcs.CmsSigner signer, bool silent);
member this.ComputeSignature : System.Security.Cryptography.Pkcs.CmsSigner * bool -> unit
Public Sub ComputeSignature (signer As CmsSigner, silent As Boolean)

Parametreler

signer
CmsSigner

CmsSigner İmzalayanı temsil eden nesne.

silent
Boolean

Yalnızca .NET Core ve .NET 5+ : true PIN istemleri devre dışı bırakılmış açma anahtarları istemek için, destekleniyorsa; aksi takdirde, false. .NET Framework'da bu parametre kullanılmaz ve gerekirse her zaman bir PIN istemi gösterilir.

Özel durumlar

signer, null değeridir.

Şifreleme işlemi tamamlanamadı.

Yalnızca .NET Framework: İmzalama sertifikası belirtilmedi.

Yalnızca .NET Core ve .NET 5+ : İmzalama sertifikası belirtilmedi.

Açıklamalar

Yalnızca .NET Core: silent Değer null değilse parametresinin CmsSigner.PrivateKey hiçbir etkisi olmaz. Sağlanan değer, imzanın hesaplanıp hesaplanmayacağını denetler ve pin istemi gösterir. Özellik null olduğunda PrivateKey ve silent parametresi olarak trueayarlandığında bile, bazı işletim sistemi ve imzalayıcı seçeneklerinin birleşimleri yine de bir PIN istemine neden olabilir.

Kullanıcı arabirimini .NET Framework görüntülemek için aşağıdaki izinler gereklidir:

.NET Framework'da imza anahtarına erişmek için aşağıdaki izinler gereklidir:

Şunlara uygulanır

ComputeSignature()

Kaynak:
SignedCms.cs
Kaynak:
SignedCms.cs
Kaynak:
SignedCms.cs

Bir imza oluşturur ve imzayı CMS/PKCS #7 iletisine ekler.

public:
 void ComputeSignature();
public void ComputeSignature ();
member this.ComputeSignature : unit -> unit
Public Sub ComputeSignature ()

Özel durumlar

.NET Framework (tüm sürümler) ve .NET Core 3.0 ve üzeri: Alıcı sertifikası belirtilmedi.

.NET Core sürüm 2.2 ve öncesi: İmzalayan sertifikası sağlanmadı.

Açıklamalar

Oluşturucu aşırı yüklemelerinden birinin SignedCms bağımsız değişkeni olarak signerIdentifierType sağlandıysa SubjectIdentifierType.NoSignature bu yöntem başarılı olur. Aksi takdirde, bir özel durum oluşturur.

.NET Framework'da imza anahtarına erişmek için aşağıdaki izinler gereklidir:

Şunlara uygulanır

ComputeSignature(CmsSigner)

Kaynak:
SignedCms.cs
Kaynak:
SignedCms.cs
Kaynak:
SignedCms.cs

Belirtilen imzayı imzalayanı kullanarak bir imza oluşturur ve imzayı CMS/PKCS #7 iletisine ekler.

public:
 void ComputeSignature(System::Security::Cryptography::Pkcs::CmsSigner ^ signer);
public void ComputeSignature (System.Security.Cryptography.Pkcs.CmsSigner signer);
member this.ComputeSignature : System.Security.Cryptography.Pkcs.CmsSigner -> unit
Public Sub ComputeSignature (signer As CmsSigner)

Parametreler

signer
CmsSigner

CmsSigner İmzalayanı temsil eden nesne.

Özel durumlar

Geçerli bir bağımsız değişken olarak kabul etmeyen bir yönteme null başvuru geçirildi.

Şifreleme işlemi tamamlanamadı.

Örnekler

Aşağıdaki örnekte, ayrılmamış ileti içeriğine sahip bir SignedCms iletideki imzayı hesaplama adımları gösterilmektedir. Bu durumda, ileti içeriği iletiye SignedCms eklenir.

// The dataToSign byte array holds the data to be signed.
ContentInfo contentInfo = new ContentInfo(dataToSign);

// Create a new, nondetached SignedCms message.
SignedCms signedCms = new SignedCms(contentInfo);

// Sign the message.
signedCms.ComputeSignature();

// Encode the message.
byte[] myCmsMessage = signedCms.Encode();

// The signed CMS/PKCS #7 message is ready to send.
// The original content is included in this byte array.
' The dataToSign byte array holds the data to be signed.
Dim contentInfo As New ContentInfo(dataToSign)

' Create a new, nondetached SignedCms message.
Dim signedCms As New SignedCms(contentInfo)

' Sign the message.
signedCms.ComputeSignature()

' Encode the message.
Dim myCmsMessage As Byte() = signedCms.Encode()

' The signed CMS/PKCS #7 message is ready to send.
' The original content is included in this byte array.

Aşağıdaki örnekte, ayrılmış ileti içeriğine sahip bir SignedCms iletideki imzayı hesaplama adımları gösterilmektedir. Bu durumda, ileti içeriğinin iletiden SignedCms bağımsız olarak doğrulanması gerekir.

// The dataToSign byte array holds the data to be signed.
ContentInfo contentInfo = new ContentInfo(dataToSign);

// Create a new, detached SignedCms message.
SignedCms signedCms = new SignedCms(contentInfo, true);

// Sign the message.
signedCms.ComputeSignature();

// Encode the message.
byte[] myCmsMessage = signedCms.Encode();

// The signed CMS/PKCS #7 message is ready to send.
// The original content is not included in this byte array.
' The dataToSign byte array holds the data to be signed.
Dim contentInfo As New ContentInfo(dataToSign)

' Create a new, detached SignedCms message.
Dim signedCms As New SignedCms(contentInfo, True)

' Sign the message.
signedCms.ComputeSignature()

' Encode the message.
Dim myCmsMessage As Byte() = signedCms.Encode()

' The signed CMS/PKCS #7 message is ready to send.
' The original content is not included in this byte array.

Açıklamalar

.NET Framework'da imza anahtarına erişmek için aşağıdaki izinler gereklidir:

Şunlara uygulanır