おはよう、ASP.NET 2.0の偽装
私のWebアプリケーションはWindows認証を使用するように設定されており、偽装はtrueに設定されています。
ログインしたユーザーアカウントを使用してプロセスを開始することはできません。しかし、notepad.exeを起動しようとすると、NETWORK SERVICEとして実行されました。
私はさまざまな偽装手法を試しましたが、いずれも機能しませんでした。
助けてください。
おはよう、ASP.NET 2.0の偽装
私のWebアプリケーションはWindows認証を使用するように設定されており、偽装はtrueに設定されています。
ログインしたユーザーアカウントを使用してプロセスを開始することはできません。しかし、notepad.exeを起動しようとすると、NETWORK SERVICEとして実行されました。
私はさまざまな偽装手法を試しましたが、いずれも機能しませんでした。
助けてください。
シンプルな偽装を使用すると、別のユーザーとしてプロセスを開始することはできません。 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.
我々は再び再供給にユーザーパスワードたくありません。 Windows認証を使用しているため、ユーザーは自分のドメインアカウントを使用してログインします。 User.Identity.Nameを使用すると、現在のユーザーがそのアカウントを使用して正常に認証されたことがわかります。 ユーザーが提供するアカウントを使用してプロセスを実行したいだけです。 – Ian
明確にするために私の編集をご覧ください。 –