0

何年もの間、Windows XP(32ビット)は私の開発デスクトップ(個人プロジェクト)でした。私は多くの趣味のプロジェクトを開発し、それをオープンソースとして配布しており、Vistaでのチェックについて心配したり悩んだりしたことはありません(Vistaを1週間しか使用していません)。しかし、私のユーザーの誰も、Vistaの私のアプリについてあまり不満を言っていません。

今、私はWindows 7 64ビットOS(RTM)に移行しました。VisualStudio2008を使用しています。販売を計画しているアプリケーションを開発しています。

私はデータストレージにSQLiteDBを使用していますが、ラップトップに最初のバージョンをインストールすることを決定するまで、すべてがうまくいきました。ブーム!アプリが期待どおりに機能しませんでした。私が管理者ユーザーであるにもかかわらず、アプリがDBに書き込めないことがわかりました(読み取り専用と表示されていました)。

注:Windows 7では、ログインしているユーザーが管理者権限を持っている場合でも、プロセス(場合によってはドライブ間のコピー貼り付け)に管理者アクセスが必要かどうかの確認を求められます。これが新しいかどうかわからない。これが古いものであるかどうかは無視してください。

「管理者として実行」としてアプリを実行すると、正常に機能しました。

app.manifestファイルの設定は次のとおりです。

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

次のいずれかに変更できることを理解しています

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

私の質問は、設定を「requireAdministrator」に変更した場合、管理者権限を持たない通常のユーザーに影響しますか?

DBを通常のユーザーが書き込み可能にするにはどうすればよいですか?

この設定はWindowsXPユーザーにどのように影響しますか?

誰もが問題なくDBを更新できるようにするための最良の構成は何ですか?

このようなセキュリティの問題に直面するのはこれが初めてです。何かアドバイスはありますか?

注:このアプリは、考えられるすべてのOSでテストします。Vista 32ビットOS(管理者ユーザー)でテストを実行しましたが、正常に機能しました。しかし、Windows7での私の経験は私を混乱させました。

4

2 に答える 2

3
  1. はい、通常のユーザーは管理者の資格情報を提供する必要があります。
  2. DB をユーザーが書き込み可能な場所にインストールするか、サービス / IPC を使用して DB に書き込みます。
  3. 可能であれば、ユーザーごとのデータベース。ユーザーごとのものは、AppData などのユーザーが書き込み可能な場所に保存できます。そうでない場合は、service/IPC を使用して書き込みを行います。
于 2009-08-17T19:26:05.380 に答える
0

最善の策は、ターゲット OS がインストールされた状態で仮想マシンをインストールすることです。実際にテストするまで、何が起こるかわかりません。

于 2009-08-17T19:24:27.053 に答える