2010-12-21 55 views
4

私はRevertToSelf()が.netアプリケーションで何をするのか分かりません。 MSDN定義を確認すると、定義が読み取られますRevertToSelf()とは何ですか? #

The RevertToSelf function terminates the impersonation of a client application. 

したがって、現在のユーザーコンテキストは、クライアントのコンテキストを停止することによってsysadminコンテキストに変更されますか? RevertToSelf()を呼び出すと、私のコードはsys adminモードで実行されますか?オーケー

更新

私はASP.NETアプリケーションではRevertToSelf()を呼び出した場合ので、何が起こりますか?私は偽装を開始しないと考えてみましょう。 RevertToSelf()を呼び出すと、アプリケーションプールIDに戻りますか?

+0

このWin32 API呼び出しを意味しますか? http://msdn.microsoft.com/en-us/library/aa379317%28v=vs.85%29.aspx .NETから呼び出すのですか?なぜ組み込みの.NET偽装を使用しないのですか? http://stackoverflow.com/questions/125341/impersonation-in-net – Rup

+0

私の更新された質問を親切にチェックしてください。 – NLV

+0

@Rup - 管理者として偽装したいコードoWindowsIdentity.Impersonate(IntPtr.Zero)を実行すると、 'Token can be zero'例外がスローされます。しかし断続的です。 – NLV

答えて

8

RevertToSelfは、あなたがアクティブに有効にした偽装をすべて終了します。ユーザーアカウントを偽装するようにアプリケーションを設定することができます。 RevertToSelfは偽装を使用していない限り効果がありません。 RevertToSelfを呼び出すと、アプリケーションが管理者として実行され、他のアカウントを偽装するように構成されたアプリケーション内であった場合にのみ、管理者としてコードが実行されます。

2

何年か前に私は偽装/復帰(ほぼ)を自動的に行うためにImpersonatorという小さなクラスを実装しました。

もしあなたが一見すると、それはいつどのように使用されるか教えてくれるでしょうか?

0

特定のユーザーの資格情報(ユーザー名とパスワード)があると仮定すると、偽装を開始し、偽装されたユーザーのコンテキストで実行されるWin32 APIを呼び出すことができます。 RevertToSelf()を呼び出すまで、あなたが偽装しているユーザーのアクセス権を持つことになります。この場合、コードを最初に起動したユーザーのアクセス権に戻ります。

関連する問題