2

C ++ .Netアプリケーションをリリースしようとしていますが、WindowsUACに非常に不満を感じています。いつもXPのために書いているので、私はこれについてあまり経験がありません。

プログラムは、2つのXMLファイルに格納されているいくつかのプロパティを更新する必要があり、管理者アカウントで実行されていない場合は、試行するたびにアクセスが拒否されます。Microsoftの推奨事項に従い、変更が必要なすべてのファイルをCSIDL_COMMON_APPDATAフォルダーに書き込んでいます。インストーラーには、後で[Organization} [Program]構造を作成し、セキュリティグループEvery Oneにフルコントロール特権を追加するアクションがあります。これは、デフォルトでは、そのディレクトリが読み取り専用であるためです。作成されたディレクトリ[Organization}[Program]に、インストール後に割り当てられたグループと特権が実際に含まれていることを確認しました。また、アプリケーションにはrequestedExecutionLevelのマニフェストがあります。これは、私がasinvokerおよびHighestavailableを試しました。

ユーザーが管理者としてログに記録されていない限り、アプリケーションはまだディレクトリに書き込むことができません...

マシンはサーバー2003によって制御されるドメイン内にありますが、クライアントはXP、vista、および7が混在しています。

どうか、私が教えてくれた以上の経験を持っている人がいますか?他のフォルダを使用する必要がありますか?問題は、さまざまなユーザーがコンピューターにログインする可能性があり、それらの設定は一般的であるため、明らかなユーザーフォルダーはオプションではないということです。

ドメインのどのユーザーがプログラムを使用するかわからないため、インストーラーを使用してフォルダーのセキュリティにユーザーを追加することもできません。また、ユーザーに管理者権限がない場合は、起動時にプログラムから追加することもできません。プログラムはブロックされます。

私がここで何が欠けているかについてのアドバイスや兆候はありますか?

4

1 に答える 1

1

これ はあなたの問題を議論するかもしれません。特に参照してください

アプリケーションのインストーラーは、CSIDL_COMMON_APPDATAのサブディレクトリーにACLを設定して、ユーザーがアプリケーションの必要に応じてそのディレクトリーにアクセスできるようにする必要があります。

于 2012-07-19T06:46:14.153 に答える