ActiveReports 6を追加してPDFをエクスポートする際のセキュリティ設定とデジタル署名
6906 ワード
PDFフォーマットは広く応用されている電子文書交換フォーマットの標準となっている.ActiveReports 6は、ユーザーが組織内と組織間でレポートデータを共有しやすいように、生成したレポートをPDF形式にエクスポートします.次のコードは、ActiveReports 6がPDFをエクスポートする簡単な例です.
場合によっては、パスワードを追加したり、レポートの読者が印刷ではなくオンラインで閲覧できるようにしたりするなど、レポートの内容をある程度安全に保護する必要があります.ActiveReports 6では、PDFをエクスポートする際に豊富なセキュリティ権限設定が用意されています.それだけでなく、ActiveReports 6のプロフェッショナル版では、ドキュメントのソースや作成時間、ドキュメントが変更されているかどうかなどをデジタル署名で示すこともできます.
一.安全保護付きPDFクラスDataDynamicsを導出.ActiveReports.Export.Pdf.PdfExportのSecurityメンバーは、PDFをエクスポートするセキュリティ保護設定を指定します.
1.Encrypt:エクスポートしたPDFを暗号化するかどうかを決定する値を設定または取得します.
2.OwnerPassword:PDF所有者パスワード.PDFを開くときにこのパスワードを入力すると、操作権限は次のPermissions設定に制限されません.
3.Permissions:コピー可能かどうか、印刷可能かどうか、コメント可能かどうか、内容変更可能かどうかなど、PDFに対するユーザーの操作権限を指定します.
4.UserPassword:ユーザーパスワードを取得または設定します.ユーザーはPDFを開くときにこのパスワードを入力する必要があり、操作権限はPermissionsによって制限されています.
たとえば、次のサンプルコードでは、ユーザーパスワードが設定されており、ドキュメントの印刷が許可されています.
二.デジタル署名付きPDFデジタル署名を導出する役割は、従来の手書き署名と同様であり、誰が文書に署名したかを示す.また、署名者は、ドキュメントが署名された後の変更権限を指定することもできます.ユーザーは、ドキュメントが署名された時間、署名された後に変更されたかどうかなどの情報を表示できます.
プロフェッショナル版のActiveReportsでは、PDF形式のデータ出力をさらに強化しています.ユーザーは、非表示のデジタル署名または表示の文字パターンをレポートに追加できます.16種類の属性でデジタル署名をカスタマイズし、デジタル署名でレポート作成者を検証し、Certification Levelでユーザーアクセス権を設定することもできます.タイムスタンプ機能を使用してサードパーティのライセンスバージョンを作成します.これらの新機能は、Adobeの新しいセキュリティメカニズムと完全に互換性があります.
デジタル署名を作成するには、まず有効なPKCS 12証明書ファイル(*.pfx)を持つ必要があります.通常、証明書は専門のデジタル署名メーカーから取得する必要があります.ActiveReportsのデジタル署名機能を学習し、理解するには、次の手順で証明書ファイルを作成します.
1.次のコマンドライン操作で証明書makecert-r-pe-n"CN=Your Name"-b 01/01/2000-e 01/01/2099-eku 1.3.6.1.5.5.3.3-ss Myを作成
2.IEブラウザで「ツール---オプション」メニューを選択し、ポップアップダイアログで「内容」ページを選択し、「証明書」ボタンをクリックして証明書ダイアログをポップアップする.
3.証明書ダイアログボックスで「エクスポート」ボタンを押して、秘密鍵を含む証明書ファイルをエクスポートし、設定したパスワードをメモします.
次のコード例では、文字と画像を含むデジタル署名を作成します.使用する前に、作成したPFXファイルに証明書ファイル名を置き換え、PFXファイルを作成するときに入力したパスワードにパスワードを変更する必要があります.
上記で生成したレポート・ファイルは、Acrobat Readerに次のように表示されます(左上隅はデジタル署名).
最後に、セキュリティ保護とデジタル署名は同時に使用できません.
ActiveReportsの使用方法とテクニックについては、「ブドウ城製品技術コミュニティActiveReportsナレッジベースとエッセンスエリア」を参照してください.
この記事は「ブドウ城コントロールブログ」のブログから出ています.必ずこの出典を残してください.http://powertoolsteam.blog.51cto.com/2369428/666590
Private void btnExport_Click(Object sender, System.EventArgs e)
{
rptDataDynamics rpt = new rptDataDynamics();
DataDynamics.ActiveReports.Export.Pdf.PdfExport p = new DataDynamics.ActiveReports.Export.Pdf.PdfExport();
rpt.Run();
this.arv.Document = rpt.Document;
p.Export(rpt.Document, Application.StartupPath + "\\p.pdf");
}
場合によっては、パスワードを追加したり、レポートの読者が印刷ではなくオンラインで閲覧できるようにしたりするなど、レポートの内容をある程度安全に保護する必要があります.ActiveReports 6では、PDFをエクスポートする際に豊富なセキュリティ権限設定が用意されています.それだけでなく、ActiveReports 6のプロフェッショナル版では、ドキュメントのソースや作成時間、ドキュメントが変更されているかどうかなどをデジタル署名で示すこともできます.
一.安全保護付きPDFクラスDataDynamicsを導出.ActiveReports.Export.Pdf.PdfExportのSecurityメンバーは、PDFをエクスポートするセキュリティ保護設定を指定します.
1.Encrypt:エクスポートしたPDFを暗号化するかどうかを決定する値を設定または取得します.
2.OwnerPassword:PDF所有者パスワード.PDFを開くときにこのパスワードを入力すると、操作権限は次のPermissions設定に制限されません.
3.Permissions:コピー可能かどうか、印刷可能かどうか、コメント可能かどうか、内容変更可能かどうかなど、PDFに対するユーザーの操作権限を指定します.
4.UserPassword:ユーザーパスワードを取得または設定します.ユーザーはPDFを開くときにこのパスワードを入力する必要があり、操作権限はPermissionsによって制限されています.
たとえば、次のサンプルコードでは、ユーザーパスワードが設定されており、ドキュメントの印刷が許可されています.
p.Security.Encrypt = true;
p.Security.Use128Bit = true;
p.Security.UserPassword = "monkey";
p.Security.Permissions = DataDynamics.ActiveReports.Export.Pdf.PdfPermissions.AllowPrint;
p.Export(rpt.Document, Application.StartupPath + "\\p.pdf");
二.デジタル署名付きPDFデジタル署名を導出する役割は、従来の手書き署名と同様であり、誰が文書に署名したかを示す.また、署名者は、ドキュメントが署名された後の変更権限を指定することもできます.ユーザーは、ドキュメントが署名された時間、署名された後に変更されたかどうかなどの情報を表示できます.
プロフェッショナル版のActiveReportsでは、PDF形式のデータ出力をさらに強化しています.ユーザーは、非表示のデジタル署名または表示の文字パターンをレポートに追加できます.16種類の属性でデジタル署名をカスタマイズし、デジタル署名でレポート作成者を検証し、Certification Levelでユーザーアクセス権を設定することもできます.タイムスタンプ機能を使用してサードパーティのライセンスバージョンを作成します.これらの新機能は、Adobeの新しいセキュリティメカニズムと完全に互換性があります.
デジタル署名を作成するには、まず有効なPKCS 12証明書ファイル(*.pfx)を持つ必要があります.通常、証明書は専門のデジタル署名メーカーから取得する必要があります.ActiveReportsのデジタル署名機能を学習し、理解するには、次の手順で証明書ファイルを作成します.
1.次のコマンドライン操作で証明書makecert-r-pe-n"CN=Your Name"-b 01/01/2000-e 01/01/2099-eku 1.3.6.1.5.5.3.3-ss Myを作成
2.IEブラウザで「ツール---オプション」メニューを選択し、ポップアップダイアログで「内容」ページを選択し、「証明書」ボタンをクリックして証明書ダイアログをポップアップする.
3.証明書ダイアログボックスで「エクスポート」ボタンを押して、秘密鍵を含む証明書ファイルをエクスポートし、設定したパスワードをメモします.
次のコード例では、文字と画像を含むデジタル署名を作成します.使用する前に、作成したPFXファイルに証明書ファイル名を置き換え、PFXファイルを作成するときに入力したパスワードにパスワードを変更する必要があります.
// ImageText signature.
p.Signature.VisibilityType = DataDynamics.ActiveReports.Export.Pdf.Signing.VisibilityType.ImageText;
// Bounds (Container of Text & Image).
p.Signature.Stamp.Bounds = new RectangleF(0, 0, 4, 1);
// Text area.
p.Signature.Stamp.TextAlignment = DataDynamics.ActiveReports.Export.Pdf.Signing.Alignment.Left;
p.Signature.Stamp.Font = new Font("Comic Sans MS", 8, FontStyle.Regular);
// Note: Specify (x, y) in relative coordinate from Bounds top-left.
p.Signature.Stamp.TextRectangle = new RectangleF(1, 0, 3, 1);
// Image area.
p.Signature.Stamp.Image = Image.FromFile("D:\\Temp\\PowerToolsLogo.jpg");
p.Signature.Stamp.ImageAlignment = DataDynamics.ActiveReports.Export.Pdf.Signing.Alignment.Center;
// Note: Specify (x, y) in relative coordinate from Bounds top-left.
p.Signature.Stamp.ImageRectangle = new RectangleF(0, 0, 1, 1);
// Set certificate & password.
p.Signature.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2("D:\\Temp\\AllanCert.pfx", "123");
// set the certifiation level
p.Signature.CertificationLevel = DataDynamics.ActiveReports.Export.Pdf.Signing.CertificationLevel.NoChangesAllowed;
//Signature items.
p.Signature.Contact = new DataDynamics.ActiveReports.Export.Pdf.Signing.SignatureField<string>(“[email]tool-[email protected][/email]”, true);
p.Signature.SignDate = new DataDynamics.ActiveReports.Export.Pdf.Signing.SignatureField<System.DateTime>(System.DateTime.Now, true);
p.Export(rpt.Document, Application.StartupPath + \\p.pdf);
上記で生成したレポート・ファイルは、Acrobat Readerに次のように表示されます(左上隅はデジタル署名).
最後に、セキュリティ保護とデジタル署名は同時に使用できません.
ActiveReportsの使用方法とテクニックについては、「ブドウ城製品技術コミュニティActiveReportsナレッジベースとエッセンスエリア」を参照してください.
この記事は「ブドウ城コントロールブログ」のブログから出ています.必ずこの出典を残してください.http://powertoolsteam.blog.51cto.com/2369428/666590