Windows XP(32ビット)は私の開発デスクトップ(パーソナルプロジェクト)でした。私は多くの趣味のプロジェクトを開発し、それをオープンソースとして配布しており、Vistaでの確認について心配したり、心配することはありませんでした(私はVistaを1週間しか使用していません)。しかし、私のユーザーの誰もVistaの私のアプリについて多くの不平を感じていません。開発用にWindows 7(64)に移行しました。 UACの設定はどうですか? [Windowsアプリケーション]
私はWindows 7 64ビットOS(RTM)に移行しました。私はVisual Studio 2008を使用しています。私は販売しようとしているアプリケーションを開発しています。私は私のラップトップの私の最初のバージョンを備え付けることを決めたまで、私は、データストレージおよびすべてのためにSQLiteのDBを使用しています
はうまくいきました。ブーム!アプリが期待どおりに動作しませんでした。私は管理者ユーザーであっても、アプリケーションはDBに書き込むことができませんでした(読み取り専用と言っています)。
注:ログインしているユーザーの管理者権限を持っている場合でも、プロセスは(時にはドライブ間のペーストをコピー)管理者のアクセスを必要とする場合、Windows 7には、確認のプロンプトが表示されます。これが新しいかどうかはわかりません。これが古いものであれば無視してください。
私は "管理者として実行"としてアプリを実行したときにうまくいきました。
app.manifestファイルの設定は次のとおりです。
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
私は私の質問は、私は「requireAdministrator」に設定を変更する場合には、管理者previleagesを持っていけない、通常のユーザーに影響しますでしょうか?私は、次の
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
のいずれかに変更することができます理解しますか
DBを通常のユーザに書き込み可能にするにはどうすればよいですか?
この設定はどのようにWindows XPユーザーに影響しますか?
誰もが問題なくDBを更新できるようにする最適な設定は何ですか?
私がセキュリティに関するこのような問題に直面しているのは初めてのことです。どんなアドバイス?
注:このアプリケーションはすべてのOSでテストされます。私はVista 32ビットOS(管理ユーザー)でテストを実行し、正常に動作しました。しかし、Windows 7での私の経験は私を混乱させました。
?同様のシナリオがあり、Windows 7ではうまく動作します。通常のユーザーが書き込み可能な場所(例:Application Dataフォルダ)にデータベースファイルを配置するだけで済みます。 –
今のところ私は、アプリケーションが置かれているのと同じフォルダにDBを置いています。 – Shoban
それはあなたの問題です。ユーザーは、アプリケーションが存在するフォルダーへの書き込みアクセス権を持っていません。 パスを取得するために、CSIDL_APPDATAを指定するShGetFolderPath(http://msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx)を使用します。 –