2009-05-07 12 views
2

おはよう、ASP.NET 2.0の偽装

私のWebアプリケーションはWindows認証を使用するように設定されており、偽装はtrueに設定されています。

ログインしたユーザーアカウントを使用してプロセスを開始することはできません。しかし、notepad.exeを起動しようとすると、NETWORK SERVICEとして実行されました。

私はさまざまな偽装手法を試しましたが、いずれも機能しませんでした。

助けてください。

http://msdn.microsoft.com/en-us/library/ms998351.aspx#paght000023_impersonatingbyusingwindowsidentity

答えて

2

シンプルな偽装を使用すると、別のユーザーとしてプロセスを開始することはできません。 Windows APIのCreateProcessAsUserを適切な特権とともに使用する必要があります。

CreateProcessAsUserの機能には、ユーザーのパスワードは必要ありません。 System.Security.Principal.WindowsIdentityオブジェクトから取得できるプライマリトークンが必要です。偽装レベルのトークンを取得するには、ASP.NETプロセスでオペレーティングシステムの一部としての権限が必要です。

How To: Use Impersonation and Delegation in ASP.NET 2.0このトピックに関するすべての詳細があります。また、関連するかもしれない

関連の質問はこれです:Using Process.Start() to start a process as a different user from within a Windows Service.

+0

我々は再び再供給にユーザーパスワードたくありません。 Windows認証を使用しているため、ユーザーは自分のドメインアカウントを使用してログインします。 User.Identity.Nameを使用すると、現在のユーザーがそのアカウントを使用して正常に認証されたことがわかります。 ユーザーが提供するアカウントを使用してプロセスを実行したいだけです。 – Ian

+0

明確にするために私の編集をご覧ください。 –