advapi32.dllのlogonuserメソッドを使用して、ネットワーク経由でデータにアクセスします。
スレッドのユーザーを私が提供する情報に変更することは知っていますが、それを元に戻す方法があるかどうか疑問に思っていました。
データにアクセスしてから、ローカルユーザーの資格情報に戻りたい。
1544 次
2 に答える
7
少し前に、小さななりすましクラスを作成しました。
基本的に、コードをラップして、 using
ブロック内で別のユーザーの下で実行します。
using ( new Impersonator( "myUsername", "myDomainname", "myPassword" ) )
{
...
<code that executes under the new context>
...
}
私のプロジェクトでは非常にうまくいきました。
于 2011-10-03T09:49:22.150 に答える
1
と呼ぶことができますRevertToSelf
。
とは言うものの、なりすましタスク専用のスレッドを起動し、なりすまし作業が完了したときにそれを終了することについては、言うべきことがあります。これにより、偽装作業が分離され、コールバックまたはメッセージがメインスレッドで処理される場合、それらは偽装ユーザーではなくプリンシパルユーザーのコンテキストで実行されます。実際、これについて考えれば考えるほど、専用のスレッドが解決策であると感じます。
于 2011-10-03T09:32:59.553 に答える