11

アプリケーション マニフェストを使用して .NET アプリケーションを構成し、管理者特権を要求しました。また、signtool を使用してアセンブリに署名しました。アプリケーションを起動すると、アプリケーションの名前と署名証明書の名前を含む適切な UAC プロンプトが表示されます。

ただし、ネットワーク共有からアプリケーションを実行すると、昇格プロンプトにアプリケーションのアイコンではなく、一般的な実行可能アイコンが表示されます。代わりに、UAC プロンプトにアプリケーションのアイコンを表示させるにはどうすればよいですか?

4

3 に答える 3

3

私はおそらく知った。

UACはサービス上で実行され、表示されるダイアログはデスクトップスナップショットの上にあります。サービスは、デスクトップ上にあるかのようにダイアログボックスを表示するだけです。

私たちが知っているように、サービスはSYSTEMアカウントで実行されます(他のいくつかの中で)。これは、起動する実行可能ファイルに対する権限がSYSTEMに必要であることを意味します。私は自分自身にのみセキュリティを割り当てました(SYSTEMを削除しました)。

SYSTEMに権限を付与し(読み取り権限のみ!)、アプリケーションを起動するとすぐに、アプリケーションアイコンが表示されました。

于 2011-05-23T18:14:46.713 に答える
1

どうやらそれは .net ではなく、UAC に関するものです。

systinternals の procmon をネットワーク共有に配置して動作を再現しましたが、同じ違いが見られました。

おそらく、昇格されたセッションに切り替えるときに別のユーザーが使用されているということです。ネットワークマッピングは一般ユーザーで行っているため、昇格したセッションではアプリケーションが見つからず、アイコンを表示できませんか?

昇格されたセッションで接続を強制的に有効にするために、次のことを試みることができます。

  • 昇格したコマンド プロンプトを開始する
  • 純使用\\your-network-location\share /user:<username> <password>
  • 次に、開始->実行して開始\\your-network-location\share\procmon.exeし(安全のために、マップされたドライブを避けます)、UACプロンプトが改善するかどうかを確認しますか?
于 2009-01-22T21:09:49.587 に答える
1

質問に関連している可能性があります:ネットワーク ドライブから実行すると、.NET アプリケーションがクラッシュするのはなぜですか?

.net アプリケーションが、ローカル ディスク以外のネットワーク共有に対して他の権限を持っていること。通常、3.5 SP1 に更新すると、この問題は解消されます。それ以外の場合は、.net のリモート コードのポリシーを確認してください。

また、同じディレクトリに配置するために昇格が必要な他の非.netアプリケーション(たとえばprocmon)を試して、何が起こるかを確認することもできます。

于 2009-01-22T20:22:46.857 に答える