0

複数のタスク (ファイルを開く、ポートを開く、Windows サービスを生成するなど) を同時に実行することを目的とした C# アプリを構築しようとしています。

ここに私が必要とするものがあります:-

a) アプリはこれらのタスクを同時に実行できる必要があります [それぞれが別のスレッドを介して内部で開始されますが、同じアプリケーション ドメイン内で] b) 各スレッドは別の Windows ユーザー アカウントのアカウントで実行する必要があります [ユーザー名パスワードは、アプリケーションがリポジトリ/テーブルを介して開始する前に提供されます]

C# でこれを達成するための最良の方法を提案してください。ありがとう、サミット

4

2 に答える 2

1

これが私の研究成果です:- a) DllImport LogonUser、SetThreadToken、および LogOffUser API b) ユーザーをログインさせ、ハンドル/トークンを取得します c) スレッドを作成し、SetThreadToken を使用してスレッドにトークンを設定します d) スレッドを実行/実行します。これで、スレッドは LogonUser API で資格情報が提供されたユーザーのアカウントで実行されているかのようにアクションを実行します。 e) スレッドがジョブを完了したら、LogoffUser API を呼び出してユーザーをスレッドからログオフします。

これは私にとってはうまくいきました!

ただし、マネージド/ピュア C# API を使用してこれを行うことができるかどうかを知りたいと思います。

誰?

于 2012-08-16T18:43:07.637 に答える
0

呼び出すことはできますが、異なるユーザー資格情報で異なるタスク/スレッドを実行できるかどうかはわかりません。これは、異なるユーザー資格情報を使用して異なるスレッドを実行することと同じではありません。

Process.Start(filenameToStart, username, password, domain);

並列処理Parallel.Invokeに使用できます。

Parallel.Invoke( () => doX(), () => doY());

于 2012-07-30T21:35:52.617 に答える