多くの開発者は、ウェブアプリケーションでドキュメントを表示する必要があるときに、まず UI コンポーネントライブラリを探し始めます。Doconut ビューア は、ASP.NET Core、MVC、または従来の WebForms プロジェクトにプラグイン不要のブラウザ表示機能を追加するための .NET SDK です。セキュリティは依然として、認証、認可、通信、ストレージ、バリデーション、クリーンアップ、パッチ適用、モニタリングといったアプリケーション全体のアーキテクチャに依存します。

1. Doconut App SDK をインストールし、複数のファイル形式に対応する .NET プロジェクトを準備する
1.1 対応パッケージを追加する
公式のDoconut ダウンロードページから最新のパッケージとセットアップ手順を取得してください。選択したバージョンを記録し、対象の .NET ランタイムをサポートしているか確認します。
1.2 パッケージ参照を確認する
インストール後、プロジェクトファイル内のパッケージ参照と解決されたバージョンを確認してください。バージョンを明示的に管理することで、ビルドやデプロイの再現性が向上します。
1.3 HTTPS を有効にする
アプリケーションを HTTPS で提供し、アップロードされたドキュメントがネットワーク上で平文で送信されないようにします。Kestrel でホストするアプリの場合、appsettings.json にエンドポイント設定を追加します:
{
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "
}
}
}
}
IIS でホストする場合は、サイトに HTTPS 証明書をバインドしてください。HTTPS が有効になると、ファイルは安全なチャネルを通って自サーバーへ送られ、そこで SDK がレンダリングします。
セキュリティの出所
SDK はあなたのアプリケーション内、あなたのインフラ上で動作します。Doconut のサーバーへ外部呼び出しは行わないため、ドキュメントがネットワークを離れることはありません。これが設計上重要なポイントです。SDK はコンプライアンス認証を提供するものではなく、ISO 27001、SOC 2、HIPAA のいずれの認証も付属しておらず、あなたのアプリケーションにそれらを付与することもできません。SDK が行うのは、既に管理・監査している境界内にファイルを保持することだけです。
2. ドキュメント管理のための安全なファイルアップロードとストレージを構成する
これは SDK ではなくあなた側の責任領域であり、はっきり言っておくべきです。通信のセキュリティ、保存時の暗号化、保持期間やクリーンアップはすべてアプリケーション側の判断です。SDK はドキュメントをレンダリングするだけで、ストレージ層ではなく、ディスクの暗号化も行いません。
2.1 サービスを登録する
Startup.cs(または最新の .NET では Program.cs)で、インストールしたバージョンのドキュメントに従い、依存性注入コンテナに Doconut サービスを登録します。SDK が一時的なレンダリング出力用に作業フォルダーを必要とする場合は、管理下にある場所を指定し、そのフォルダーのクリーンアップを自分の責任としてください。スケジュールジョブやアプリケーション管理のライフタイムで削除するのが望ましく、単なる想定に任せてはいけません。
2.2 アップロードエンドポイントを作成する
アップロードされたファイルを受け取り、アプリケーションが既に使用しているストアに保存し、短時間有効なワンタイムトークンを返すコントローラーアクションを実装します。このトークンをクライアント側ビューアが取得・レンダリングに使用します。保存処理はあなた側で行うことに注意してください。レンダリング時に SDK にバイト列またはパスを渡し、SDK はページデータを返します。
2.3 エンドポイントを保護する
アップロードエンドポイントは機密データを扱うため、認証とロールベースの認可で保護してください(例:DocumentViewer ロールを持つユーザーのみがアップロード可能)。拡張子とサイズはサーバー側でもブラウザ側でも検証し、アップロードされたバイト列は信頼できない入力として扱います。
SDK がカバーしていると想定して省略しないでください。
保存時の暗号化、キー管理、孤立ファイルのクリーンアップはアプリケーション側の責務です。ディスク上でドキュメントを暗号化する必要がある場合は、既に信頼しているプラットフォーム機能を使用してください—ビューアはその役割を担いません。
3. ASP.NET Core、MVC、または WebForms にビューアコンポーネントを埋め込む
バックエンドの準備ができたら、インストールされた Doconut バージョンのドキュメントに記載されたアセットと API を使用してビューアを初期化します。
3.1 JavaScript バンドルを追加する
共有レイアウトでは、インストールされた SDK に対応するドキュメントで説明されているビューアリソースのみを含めます。バージョン間でバンドル名や場所が固定されていると想定しないでください。
3.2 Core/MVC 用の Razor ビューを作成する
ビュー(例: Views/Document/View.cshtml)を追加し、ファイル入力、ビューア用のコンテナ要素、選択したファイルをアップロードし、セキュアトークンを受け取り、Doconut Viewer ウィジェットを初期化する小さなスクリプトを含めます。
スクリプトは以下を行う必要があります:
<input type="file">要素から選択されたファイルを取得する。fetchまたはXMLHttpRequestを使用してファイルをアップロードエンドポイントに送信する。- 認可されたレスポンスが返ってきたら、インストールされたバージョンでサポートされている API を使用してビューアを初期化する。
3.3 WebForms の等価実装
WebForms ページ(例: DocumentViewer.aspx)では、asp:FileUpload コントロール、アップロードをトリガーするボタン、そしてビューアをホストする <div> を配置します。コードビハインドでは、アップロードされたファイルを保存するために Doconut サービスを呼び出し、トークンを取得し、ビューアインスタンスを作成する JavaScript 関数(initViewer(token))を呼び出すスタートアップスクリプトを登録します。
この方法の理由: エンドユーザーのマシンに何もインストールせず、3 つの .NET UI モデルに対して 1 つのレンダリングパスを提供するためです。
4. ドキュメント管理向けにビューアをカスタマイズする
ビューアは自分のページ内のコンテナに描画されるため、周囲のアプリケーションは既に自分のものです。さらに、インストールしたバージョンのドキュメントに記載されたオプション名とデフォルト値を使用してください。チュートリアル(このものも含む)から取得しないでください。リリース間で設定項目は変わるため、ハードコーディングされたオプション名はアップグレード時に最も壊れやすい要素です。
事前に決めておくべき事項:
4.1 ユーザーに提供するコントロール
ユーザーが元ファイルをダウンロードできるようにするか、レンダリングされたページのみを閲覧できるようにするかを決定してください。制御された印刷は別途購入するものではなくビューアの機能の一部であるため、印刷ルールはライセンスではなく設定の問題です。
4.2 実際に必要なプラグイン
4 つは別途ライセンスが必要で、覚えておくほど短いリストです: Annotation、Converter、DICOM、Search。変換(DOC から PDF への変換など)は Converter プラグインです。テキスト検索は Search プラグインです。どちらも必要ない場合は購入しません。
4.3 ローカリゼーション
アプリケーションが多言語対応の場合、ビューアの UI 文字列としてインストールされたバージョンが提供するものを確認してから設計してください。
これが重要な理由: ビューアは自社製品の一部のように見えるべきです。購入したライセンスに含まれていない機能をユーザーに静かに約束してはいけません。
5. すべてのサポートフォーマットで統合をテストする
本番稼働前に、ユーザーが閲覧すると想定する各ファイルタイプについて簡易的なチェックを実行してください。Doconut App のビューアを使用し、各フォーマットのサンプルファイルを開いて、レンダリング、ナビゲーション、各種ツールが説明通りに動作するか確認します。
| フォーマット | テストシナリオ | 期待結果 |
|---|---|---|
| 埋め込み画像を含む大容量の複数ページレポート | スムーズなスクロール、ズーム、正確なカラー描画 | |
| DOCX | 表と脚注を含む Word 文書 | すべてのテキスト、表、脚注が表示され、レイアウトのずれがない |
| XLSX | チャートを含むスプレッドシート | チャートがベクターグラフィックとして描画され、ズームしても鮮明さが保たれる |
| PPTX | アニメーションビルドを含むスライドデッキ | スライド上の各ビルドが1フレームにスタックして描画される — これは期待通りであり、欠陥ではない |
| DWG | レイヤーと外部参照を持つ技術図面 | レイヤーの切替、距離・面積測定が機能する。外部参照(xrefs)と SHX フォントはファイルに含まれていなかったため存在しない |
| PSD | レイヤー付き Photoshop ファイル | 保存された合成画像が描画され、非表示レイヤーは隠れたまま。ズームしても色が保持される |
| SVG | グラデーションを含むベクターグラフィック | グラデーションが滑らかに描画され、ズームしても鮮明さが保たれる |
| TIFF | 高解像度スキャン | 画像の読み込みが速く、ズームで詳細が見える |
クリーンなサンプルではなく、ユーザーの実際のファイルでテストしてください。驚きを与えるフォーマットは、フォーマット自体に奇妙な点があるものです — 例えば、4 つの他の図面を参照する DWG、保存された値が再計算されていないスプレッドシート、フォントが埋め込まれていないスライドデッキなどです。無料ビューアである Doconut.app は同じエンジンで動作するため、コードを書く前に特定の扱いにくいファイルがどのように表示されるかを手早く確認できます。
結論
プラグイン不要のドキュメントビューアを組み込むには、4つのことが必要です:SDK をインストールし、独自のアップロードパスを保護し、ページ内のコンテナにレンダリングし、インストールされたバージョンが文書化しているものだけを設定します。ビューアのセキュリティへの貢献は限定的かつ実際的です――サーバー上で動作し、外部へ何も送信しません。リストの残りはすべてあなたのアプリケーションの責任であり、SDK が代わりに行うことはできません。
評価を始める準備はできましたか?まずは公式 Doconut ダウンロードおよびドキュメントページから始め、その後、Windows ベースの ASP.NET アプリケーション全体に適用される同じセキュリティレビューの中で SDK をテストしてください。