GrapeCity Secure Mail for .NET 4.0J
SecureDecode() メソッド
使用例 

デフォルト値を使用して、S/MIMEでエンコードされたMailMessageをデコードします。
シンタックス
Public Overloads Function SecureDecode() As SignerInfoCollection
public SignerInfoCollection SecureDecode()

戻り値の型

署名証明書と、署名されたメッセージで見つかった追加情報を含むSystem.Security.Cryptography.Pkcs.SignerInfoCollection
解説

IsSecureがtrueの場合、このメソッドはS/MIMEメッセージの検証と復号化の一方または両方を適宜実行します。成功した場合、IsSecureはfalseを返します。 失敗した場合は例外がスローされます。署名者の検証で例外がスローされる前に復号化が成功する場合があるため、例外がスローされた場合にメッセージが部分的にデコードされることがあります。

このメソッドは、必要に応じてMY証明書ストアで有効な復号化証明書を検索し、メッセージの署名証明書をAddressBook証明書ストアにインポートします。インポートされた証明書は、その後SecureEncryptによって使用できます。

デジタル署名を確認し、証明書を有効にするには、System.Security.Cryptography.Pkcs.SignerInfoCollectionの戻り値の各メンバーに対して SignerInfo.CheckSignature(Boolean)を実行します。

追加のコントロールが必要な場合は、SecureDecode(X509Certificate2Collection,Boolean)を使用します。

使用例
以下のサンプルコードは、署名と暗号化の一方または両方がなされているS/MIMEメッセージをデコードする方法を示します。
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography.Pkcs

private MailMessage getDecodedMessage(MailMessage message)
{
    // 復号化に使用する証明書を、エクスポートされた証明書ファイルからロードします(X509Storeからロードすることもできます)。
    X509Certificate2 decryptingCertificate = new X509Certificate2(Application.StartupPath + "\\myCertificate.pfx");
    // メッセージをデコードし、署名証明書をAddressBook証明書ストアにインポートします
    // (復号化証明書がすでにMY証明書ストアに存在する場合は、 
    // パラメーターのないSecureDecode()を代わりに使用できます)。
    SignerInfoCollection signatories = message.SecureDecode(new X509Certificate2Collection(decryptingCertificate), true);
    // 署名を確認し、証明書を有効にします
    foreach (SignerInfo signator in signatories)
        signator.CheckSignature(false);
    return message;
}
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.Pkcs

Private Function getDecodedMessage(ByVal message As MailMessage) As MailMessage
    ' 復号化に使用する証明書を、エクスポートされた証明書ファイルからロードします(X509Storeからロードすることもできます)。
    Dim decryptingCertificate As New X509Certificate2(Application.StartupPath & "\myCertificate.pfx")
    ' メッセージをデコードし、署名証明書をAddressBook証明書ストアにインポートします
    ' (復号化証明書がすでにMY証明書ストアに存在する場合は、 
    ' パラメーターのないSecureDecode()を代わりに使用できます)。
    Dim signatories As SignerInfoCollection = message.SecureDecode(New X509Certificate2Collection(decryptingCertificate), True)
    '署名を確認し、証明書を有効にします
    For Each signator As SignerInfo In signatories
        signator.CheckSignature(False)
    Next signator
    Return message
End Function
参照

参照

MailMessage クラス
MailMessage メンバ
オーバーロード一覧

 

 


© 2003, GrapeCity inc. All rights reserved.