別のユーザーとして実行するようにコードを指示する方法はありますか?
PInvokeを介してNetUserSetInfoを呼び出していますが、別のユーザーとして呼び出す必要があります。それを行う方法はありますか?
偽装にはいくつかのネイティブAPI(LogonUser)を呼び出す必要があるため、おそらく3ページのラッパーコードを投稿する価値はありません。このページには完全な作業サンプルがあります: http://platinumdogs.wordpress.com/2008/10/30/net-c-impersonation-with-network-credentials/
偽装には重要なセキュリティ上の考慮事項があることに注意してください。必ずベストプラクティスに従ってください。
これは 記事 でかなり簡潔に説明しています:
この記事のコードスニペットは次のとおりです。
IntPtr accessToken = IntPtr.Zero;
....
//You have to initialize your accessToken with API calling
....
WindowsIdentity identity = new WindowsIdentity(accessToken);
WindowsImpersonationContext context = identity.Impersonate();
...
// Now your code is using the new WindowsLogin and you can do what ever this login can do
...
//Now you can return to your current login of Windows
context.Undo();