SignedCms.ComputeSignature 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建一个签名,并将该签名添加到 CMS/PKCS #7 消息中。
重载
ComputeSignature(CmsSigner, Boolean) |
使用指定的签名者创建一个签名,并将该签名添加到 CMS/PKCS #7 消息中。 |
ComputeSignature() |
创建一个签名,并将该签名添加到 CMS/PKCS #7 消息中。 |
ComputeSignature(CmsSigner) |
使用指定的签名者创建一个签名,并将该签名添加到 CMS/PKCS #7 消息中。 |
ComputeSignature(CmsSigner, Boolean)
- Source:
- SignedCms.cs
- Source:
- SignedCms.cs
- Source:
- SignedCms.cs
使用指定的签名者创建一个签名,并将该签名添加到 CMS/PKCS #7 消息中。
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)
参数
- silent
- Boolean
仅限 .NET Core 和 .NET 5+ : true
如果支持,则请求禁用 PIN 提示的打开密钥;否则为 false
。 在 .NET Framework 中,不使用此参数,并且将始终显示 PIN 提示(如果需要)。
例外
signer
为 null
。
未能完成加密操作。
仅限 .NET Framework:未指定签名证书。
仅限 .NET Core 和 .NET 5+:未指定签名证书。
注解
仅限 .NET Core:如果值不为 null,CmsSigner.PrivateKey则silent
参数无效。 提供的值控制计算签名是否显示 PIN 提示。 PrivateKey即使 属性为 null 且 silent
参数设置为 true
,操作系统和签名者选项的某些组合仍可能导致 PIN 提示。
若要在 .NET Framework 上显示用户界面,需要以下权限:
访问 .NET Framework 上的签名密钥需要以下权限:
适用于
ComputeSignature()
- Source:
- SignedCms.cs
- Source:
- SignedCms.cs
- Source:
- SignedCms.cs
创建一个签名,并将该签名添加到 CMS/PKCS #7 消息中。
public:
void ComputeSignature();
public void ComputeSignature ();
member this.ComputeSignature : unit -> unit
Public Sub ComputeSignature ()
例外
.NET Framework(所有版本)和 .NET Core 3.0 及更高版本:未指定收件人证书。
.NET Core 2.2 版本及更早版本:未提供签名者证书。
注解
如果 SubjectIdentifierType.NoSignature 作为构造函数重载之SignedCms一的参数提供signerIdentifierType
,则此方法成功。 否则,它将引发异常。
访问 .NET Framework 上的签名密钥需要以下权限:
适用于
ComputeSignature(CmsSigner)
- Source:
- SignedCms.cs
- Source:
- SignedCms.cs
- Source:
- SignedCms.cs
使用指定的签名者创建一个签名,并将该签名添加到 CMS/PKCS #7 消息中。
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)
参数
例外
向不接受空引用作为有效参数的方法传递了一个空引用。
未能完成加密操作。
示例
以下示例演示计算邮件内容未分离的邮件签名 SignedCms 的步骤。 在这种情况下,消息内容包含在消息中 SignedCms 。
// 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.
以下示例演示了在邮件内容分离的邮件上 SignedCms 计算签名的步骤。 在这种情况下,必须独立于 SignedCms 消息验证消息内容。
// 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.
注解
访问 .NET Framework 上的签名密钥需要以下权限: