Dart.Mail 名前空間 > MailMessage クラス > SecureDecode メソッド : SecureDecode() メソッド |
Public Overloads Function SecureDecode() As SignerInfoCollection
public SignerInfoCollection SecureDecode()
IsSecureがtrueの場合、このメソッドはS/MIMEメッセージの検証と復号化の一方または両方を適宜実行します。成功した場合、IsSecureはfalseを返します。 失敗した場合は例外がスローされます。署名者の検証で例外がスローされる前に復号化が成功する場合があるため、例外がスローされた場合にメッセージが部分的にデコードされることがあります。
このメソッドは、必要に応じてMY証明書ストアで有効な復号化証明書を検索し、メッセージの署名証明書をAddressBook証明書ストアにインポートします。インポートされた証明書は、その後SecureEncryptによって使用できます。
デジタル署名を確認し、証明書を有効にするには、System.Security.Cryptography.Pkcs.SignerInfoCollectionの戻り値の各メンバーに対して SignerInfo.CheckSignature(Boolean)を実行します。
追加のコントロールが必要な場合は、SecureDecode(X509Certificate2Collection,Boolean)を使用します。
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