3

Web 管理コンソールを介してサーバー上で一連の管理タスクを実行しようとしています。コンソールは、現在ログインしているユーザーとして偽装して実行され、ローカル マシンの管理者のみがログインを許可されます。現在、ほとんどの場合に機能しますが、UAC で実行すると問題が発生します。

最初の問題はブロッカーです。ローカル ボックスの管理者であっても、管理者は「BUILTIN\Administrators」の役割を取得していないようです。<allow roles="BUILTIN\Administrators">セキュリティを指定するために web.config 表記を使用しているため、管理コンソールにアクセスすることさえできなくなる可能性があります。ここでの唯一の解決策は、ASP.NET アプリを SYSTEM として実行するか、より多くのユーザーを許可し、コードでより詳細な権限チェックを行うことだと思います。他のアイデアはありますか?組み込みの ASP.NET アクセス許可チェックに昇格要求を挿入する方法はありますか?

もう 1 つの問題は、管理者アクセスを必要とするいくつかのコマンドを実行したいということです。サイトにアクセスしているユーザーは管理者であり、適切に偽装されていますが、プロセスを生成すると、管理者権限がないために失敗します。明確な答えは、そのコマンドの間昇格することです。特定のユーザー名とパスワードになりすますことで一時的に昇格できるソリューションがありますが、既に検証済みのユーザーにパスワードを尋ねる必要はありません。現在のユーザーを昇格させるためのトリックはありますか?

(ASP.NET チームがこれを困難にしようとする理由は理解できます。これにより、Web ページは管理者が Web サイトにアクセスするという目に見えない利点を利用できなくなります...コードには完全な管理者権限が必要であり、IIS 管理者にその意図を適切に警告しますか?)

Windows フォーム アプリには、次のような一連の回答があり ます。File.Exists はネットワーク共有から false を返しますが 、 ASP.NET で動作するものを見つけたいと思っています...

ありがとうスティーブ

4

1 に答える 1

1

Active Directory でサーバーを委任できるようにすることで、現在 Web サイトにアクセスしているユーザーから「より高い」偽装レベルを達成することができました。Microsoft によるとYou can think of delegation as a more powerful form of impersonation, as it enables impersonation across a network. 、ネットワークを経由する必要はないかもしれませんが、セキュリティの問題を解決できる可能性があります。

委任の設定に関するいくつかのリソースを次に示します。これが役立つことを願っています。

于 2011-06-03T23:20:14.697 に答える