0
  • 必要なすべてのファイル ( .exe.mdfデータベース、.xml構成ファイルなど) を含む1 つのディレクトリに存在するWPFアプリケーションを作成したいと考えています。
  • アプリケーションは、このシナリオをサポートするために、どのディレクトリにあるかに関係なく動作する必要があります。
    • person 1がアプリケーションを実行しますc:\temp\wpftool.exe
    • アプリケーションがデータベースを読み書きするc:\temp\wpftool.mdf
    • 人 1はそのディレクトリを圧縮し、電子メールで人 2 に送信します。
    • 人 2がそれを に解凍するとc:\Users\jim\documents\checkout\wpftool.exe、アプリケーションはそのディレクトリ内の同じデータベースの読み取りと書き込みを行います ( c:\Users\jim\documents\checkout\wpftool.mdf)
    • 人物 2はディレクトリを再度圧縮し、それを人物 1 に送り返し、変更を続けます。

上記のシナリオをサポートする WPF アプリケーションを作成する最良の方法は何ですか? 、考慮:

  • ハードコーディングされたデータベース接続文字列があってはなりません
  • 最適な展開 方法は何ですか? 一度クリックしてください。それとも /release ディレクトリから .exe ファイルをコピーするだけですか?
  • ユーザーはデータベース内のパスワードに基づいてログインする必要があり、第三者が電子メールを傍受した場合でも、データベース内のデータを簡単に見ることができないような合理的なセキュリティ
4

2 に答える 2

1

データベース側のポイント:

「新しいユーザー」に既に SQL がインストールされていると仮定すると、(新しくコピーされた) データベースをアタッチする必要があります。アプリケーションは、データベースをアタッチするための十分なアクセス権を持っていることに加えて、データベース ファイルを含むドライブ\フォルダーを含めるように呼び出しを構成する必要があります。.exe がその場で「新しいホーム フォルダ」であることを識別できる場合は、それを解決できるはずです。

「合理的なセキュリティ」を定義します。取得したデータベース ファイルはすべて、開いて確認し、最終的に把握することができます (内容がどれほど不明瞭かによって異なります)。「顧客」の代わりにテーブル「A」を使用するなど、データを難読化できますか? 本当にしたいですか?可能な限り最高のセキュリティにはデータの暗号化が含まれ、その管理 (特に暗号化キー) は、データをどの程度「安全」にしたいかによっては、かなり高度な問題になる可能性があります。

于 2009-10-21T17:05:57.590 に答える
1

データベースについては、SQL Expressの「ユーザー インスタンス」機能の使用を検討します。|DataDirectory| と組み合わせる 置換文字列のサポートにより、アプリケーションの接続が非常に簡単になります。

正直なところ、私はまだこのアプローチを活用した ClickOnce アプリを自分で展開していませんが、あなたが説明したようなものを構築しているとしたら、自分自身を調べるので、あなたの注意を引くと思いました.

于 2009-10-21T17:52:24.830 に答える