C#を使用してユーザーになりすます必要があります。LogonUserWin32APIを使用しています。これは、現在ログインしているユーザーと同じドメインのユーザーになりすます場合に正常に機能します。ただし、他のドメインのユーザーになりすまそうとすると、応答として「false」が返されます。
これを引き起こす原因は何ですか?
C#を使用してユーザーになりすます必要があります。LogonUserWin32APIを使用しています。これは、現在ログインしているユーザーと同じドメインのユーザーになりすます場合に正常に機能します。ただし、他のドメインのユーザーになりすまそうとすると、応答として「false」が返されます。
これを引き起こす原因は何ですか?
Joelが言うように、ドメイン間の信頼が必要です。
また、委任を実行するプロセスのセキュリティコンテキスト、および実行しているマシンがどのドメインにあるかについても注意する必要があります。
アクセスしようとしているドメインによって、マシンとプロセスのユーザーアカウントの両方が委任に対して信頼されている必要があります。
これは、アクセスしようとしているドメインでコードが実行されている必要があることを意味します。
お役に立てれば
シラーズ
LogonUserがエラー情報が提供されているかどうかを確認できなかった直後に、GetLastErrorを呼び出してみてください。
http://msdn.microsoft.com/en-us/library/ms679360(VS.85).aspx
C#からGetLastErrorを呼び出す際に問題が発生する可能性があります。
詳細については、こちらをご覧ください:http: //blogs.msdn.com/adam_nathan/archive/2003/04/25/56643.aspx
2つのドメイン間に信頼関係はありますか?そうでない場合、LogonUserは失敗します。