4

C#を使用してユーザーになりすます必要があります。LogonUserWin32APIを使用しています。これは、現在ログインしているユーザーと同じドメインのユーザーになりすます場合に正常に機能します。ただし、他のドメインのユーザーになりすまそうとすると、応答として「false」が返されます。

これを引き起こす原因は何ですか?

4

2 に答える 2

5

Joelが言うように、ドメイン間の信頼が必要です。

また、委任を実行するプロセスのセキュリティコンテキスト、および実行しているマシンがどのドメインにあるかについても注意する必要があります。

アクセスしようとしているドメインによって、マシンとプロセスのユーザーアカウントの両方が委任に対して信頼されている必要があります。

これは、アクセスしようとしているドメインでコードが実行されている必要があることを意味します。

お役に立てれば

シラーズ

于 2009-06-15T01:33:27.397 に答える
4

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は失敗します。

于 2009-06-14T19:31:35.223 に答える