0

ハッシュ化されたユーザー名とパスワード、およびそれらに関連する特権で満たされたテキストリソースファイルがあります。アプリケーションを起動すると、ログインし、資格情報に応じて、アプリケーションのさまざまな部分にアクセスできます。

これはすべてうまく機能しますが、問題は、管理者アカウントを持つユーザーがプログラム内からリストに新しいユーザーを追加できる必要があることです。周りを見回しましたが、コンパイルされたリソースファイルを編集するつもりはないようです。

ただし、誰かがリストを削除、編集、または破損する可能性があるため、このユーザーリストをコンピューターに保存できません。また、インターネットに接続されていない場所で使用されることが多いため、オンラインサービスに問い合わせることができません。

リソースファイルは実行可能ファイルに埋め込まれていて、新しいユーザーが頻繁に作成されないため、リソースファイルを使用するのが好きです。アプリケーションの実行中にリソースファイルを編集および再コンパイルする方法はありますか?このアプリケーションにオフラインセキュリティを提供するために使用できる他の代替手段を知っている人はいますか?

4

2 に答える 2

2

実行可能ファイル内の文字列リソースを更新できます。Microsoft には、その方法を示すStablupdの例があります。ResourceLibなどの WinAPI リソース関数を中心に構築された C# ライブラリもあります。. ただし、実行中に実行可能ファイルのリソースを変更しようとすることはお勧めしません。問題を引き起こさないかもしれませんが、良い設計方法ではありません。最善の策は、情報を暗号化されたファイルに保存するか、レジストリに暗号化して保存することだと思います。プログラムを閉じるときにファイルを読み取り専用としてマークし、プログラムの実行中にファイルをロックすることができます。はい、ユーザーは引き続きそれを削除できますが、プログラムでリソースを編集している場合、プログラムを削除またはアンインストールすることもできます。その場合、すべてのデータも失われます。少なくともレジストリに保存すると、削除される可能性が低くなります。

于 2012-11-09T19:27:28.407 に答える
1

SQL Server Compactを使用して、必要な情報を保存および更新できます。

ただし、パスワードをローカルに保存することは間違いなく悪い考えです。-セキュリティ上の理由から。スケーラビリティのために、誰でも簡単にアクセスできます。アプリケーションのコピーを1つ以上使用することはできません。別の方法では、2人の異なる管理者が2つの異なるアカウントを作成し、2つのデータベースを同期する方法はありません

于 2012-11-09T19:23:35.483 に答える