キューに入れたユーザーとは異なるプロセスでバックグラウンドジョブを実行します

置く

このアプリケーションには、バックグラウンドで実行されるWebAPIキューイングジョブがあります。ジョブのバックグラウンド処理にはHangFireを使用します。WebAPIはWindows認証を使用します。Hangfireサーバーは、Windowsサービスとして実行するように構成されています。

バックグラウンドジョブをキューに入れたのと同じユーザーとして実行しようとしています。

WindowsIdentity.GetCurrent()(シリアル化され、hangfireによって渡されます)を渡そうとしましたが、スローされる例外は「偽装用の無効なトークン-複製できません」です。

[HttpGet, Route("enq")]
public IHttpActionResult EnQueue(string country)
{     
    var curUser = System.Security.Principal.WindowsIdentity.GetCurrent();           
    var id = Hangfire.BackgroundJob.Enqueue(() => Services.Common.TestClass.Test(curUser , country));
    return Ok(id);
}

WIN32APIメソッドのログオンユーザーを呼び出すアプローチに出くわしましたただし、パスワードを入力として使用するため、使用方法がわかりません。

バックグラウンドジョブをキューに入れたのと同じユーザーとして実行する方法はありますか?

置く

可能な解決策:

  1. Win32API呼び出しの使用。欠点は、この方法ではユーザーのパスワードが必要になることです。詳細については、以下のSOの質問をご覧ください。

Windowsの偽装とトークンの複製

  1. Kerberos拡張機能の使用「ユーザーログオン用サービス」

https://blogs.msdn.microsoft.com/winsdk/2015/08/28/logon-as-a-user-without-a-password/

var upn = System.DirectoryServices.AccountManagement.UserPrincipal.Current.UserPrincipalName;
WindowsIdentity s4u = new WindowsIdentity(upn);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

スレッド化またはタスクキューなしでFlaskでバックグラウンドジョブを実行するには

分類Dev

ユーザーがC ++プログラムをバックグラウンドで実行できないようにすることはできますか?

分類Dev

ASP.Net Identityは、ユーザーがライブサイトにアクセスしたことがある場合、バージョンが異なるとデータベースが異なる場合でも、ユーザーを自動的にテストサイトにログインさせます。

分類Dev

Hangfireバックグラウンドジョブはキューに入れられたままです

分類Dev

コマンドプロンプトからさまざまなパラメータを取得するバックグラウンドプロセスとしてPythonスクリプトを実行するにはどうすればよいですか?

分類Dev

Kubuntu:「ユーザーのセッションNで停止ジョブが実行されている」とシャットダウンが遅くなるのを回避する方法-KDEログアウトでスクリプトを実行してVPNを切断する可能性があります

分類Dev

Eclipseプラグイン-ユーザーがパースペクティブでウィンドウを変更したときに実行されます

分類Dev

Jenkinsのバックグラウンドでのスポーンプロセス-キューにとどまらないジョブ

分類Dev

アプリケーションが使用中またはバックグラウンドで停止時に開始するアプリでタイミングプロセスを正しく実行するにはどうすればよいですか?

分類Dev

ブラウザ(chrome / firefox)でローカルJavaアプレットを実行します「セキュリティ設定によりローカルアプリケーションの実行がブロックされました」

分類Dev

クラウドHSMサービスプロバイダーがシミュレーションソフトウェアではなく物理ハードウェアセキュリティモジュールを実際に使用していることを確認するにはどうすればよいですか?

分類Dev

AWSまたは他のクラウドサービスでウェブサイトをホストすると、ユーザーにログインする際の認証のセキュリティが強化されますか?

分類Dev

ユーザー入力でスクリプトを実行してから、ジョブを切断してバックグラウンドで実行します

分類Dev

タスクスケジューラは、ログアウトおよびログイン後にアプリケーションのGUIを表示できません(ユーザーがログオンしているかどうかに関係なく実行されます)

分類Dev

Linux:一部のジョブをバックグラウンドでキューに入れる方法は?

分類Dev

マルチスレッドまたはその他の.NETテクノロジを使用して、ネットワーク、ディスク、およびプロセッサを集中的に使用するジョブを実行するプログラムをスケーリングするにはどうすればよいですか?

分類Dev

macOSアプリケーションでは、1行のコードで実行するバックグラウンドスレッドがあり、時間がかかります。ブロックをキャンセルするにはどうすればよいですか?

分類Dev

アプリケーションがバックグラウンドで実行されているときにユーザーが何かを貼り付けたことを検出するにはどうすればよいですか?

分類Dev

ブラックリストが失敗したときにシングルユーザーブートでのみカーネルモジュールのロードをブロックするにはどうすればよいですか?

分類Dev

スケジュールされたphpバックグラウンドプロセスを実行する方法は?

分類Dev

ユーザーがテキストフィールドへの入力を一時停止してからコールバックを実行するまで待機するJSプラグインまたはjQuery関数を探しています

分類Dev

バックグラウンドジョブをキューに入れて処理すると、メモリ不足の例外が発生します

分類Dev

バックグラウンドで何かを実行し、完了したらユーザーに通知します

分類Dev

単一のグラフィカルアプリを実行するためだけに、デスクトップまたはウィンドウマネージャーなしで小さなディストリビューションが必要

分類Dev

単純に有害であると見なされる:アキュムレータブロー(グローバル)スタックを使用したProlog述語ですが、単純なバージョンはそうではありません

分類Dev

デバイスがロックされている場合、またはアプリがバックグラウンドで実行されている場合、App Storeのアプリはキーチェーンにアクセスできますか?

分類Dev

同じブラウザーで2つのアプリケーションモジュールに同時にアクセスし、ユーザーがまだログインしていない場合、プロバイダーOAuth状態の不一致を許可する

分類Dev

コードブロックでの実行中にユーザー入力の入力がスキップされるのはなぜですか?

分類Dev

アプリがバックグラウンドに入ったとき、またはユーザーがアプリを終了したときにタイマーを停止するにはどうすればよいですか?

Related 関連記事

  1. 1

    スレッド化またはタスクキューなしでFlaskでバックグラウンドジョブを実行するには

  2. 2

    ユーザーがC ++プログラムをバックグラウンドで実行できないようにすることはできますか?

  3. 3

    ASP.Net Identityは、ユーザーがライブサイトにアクセスしたことがある場合、バージョンが異なるとデータベースが異なる場合でも、ユーザーを自動的にテストサイトにログインさせます。

  4. 4

    Hangfireバックグラウンドジョブはキューに入れられたままです

  5. 5

    コマンドプロンプトからさまざまなパラメータを取得するバックグラウンドプロセスとしてPythonスクリプトを実行するにはどうすればよいですか?

  6. 6

    Kubuntu:「ユーザーのセッションNで停止ジョブが実行されている」とシャットダウンが遅くなるのを回避する方法-KDEログアウトでスクリプトを実行してVPNを切断する可能性があります

  7. 7

    Eclipseプラグイン-ユーザーがパースペクティブでウィンドウを変更したときに実行されます

  8. 8

    Jenkinsのバックグラウンドでのスポーンプロセス-キューにとどまらないジョブ

  9. 9

    アプリケーションが使用中またはバックグラウンドで停止時に開始するアプリでタイミングプロセスを正しく実行するにはどうすればよいですか?

  10. 10

    ブラウザ(chrome / firefox)でローカルJavaアプレットを実行します「セキュリティ設定によりローカルアプリケーションの実行がブロックされました」

  11. 11

    クラウドHSMサービスプロバイダーがシミュレーションソフトウェアではなく物理ハードウェアセキュリティモジュールを実際に使用していることを確認するにはどうすればよいですか?

  12. 12

    AWSまたは他のクラウドサービスでウェブサイトをホストすると、ユーザーにログインする際の認証のセキュリティが強化されますか?

  13. 13

    ユーザー入力でスクリプトを実行してから、ジョブを切断してバックグラウンドで実行します

  14. 14

    タスクスケジューラは、ログアウトおよびログイン後にアプリケーションのGUIを表示できません(ユーザーがログオンしているかどうかに関係なく実行されます)

  15. 15

    Linux:一部のジョブをバックグラウンドでキューに入れる方法は?

  16. 16

    マルチスレッドまたはその他の.NETテクノロジを使用して、ネットワーク、ディスク、およびプロセッサを集中的に使用するジョブを実行するプログラムをスケーリングするにはどうすればよいですか?

  17. 17

    macOSアプリケーションでは、1行のコードで実行するバックグラウンドスレッドがあり、時間がかかります。ブロックをキャンセルするにはどうすればよいですか?

  18. 18

    アプリケーションがバックグラウンドで実行されているときにユーザーが何かを貼り付けたことを検出するにはどうすればよいですか?

  19. 19

    ブラックリストが失敗したときにシングルユーザーブートでのみカーネルモジュールのロードをブロックするにはどうすればよいですか?

  20. 20

    スケジュールされたphpバックグラウンドプロセスを実行する方法は?

  21. 21

    ユーザーがテキストフィールドへの入力を一時停止してからコールバックを実行するまで待機するJSプラグインまたはjQuery関数を探しています

  22. 22

    バックグラウンドジョブをキューに入れて処理すると、メモリ不足の例外が発生します

  23. 23

    バックグラウンドで何かを実行し、完了したらユーザーに通知します

  24. 24

    単一のグラフィカルアプリを実行するためだけに、デスクトップまたはウィンドウマネージャーなしで小さなディストリビューションが必要

  25. 25

    単純に有害であると見なされる:アキュムレータブロー(グローバル)スタックを使用したProlog述語ですが、単純なバージョンはそうではありません

  26. 26

    デバイスがロックされている場合、またはアプリがバックグラウンドで実行されている場合、App Storeのアプリはキーチェーンにアクセスできますか?

  27. 27

    同じブラウザーで2つのアプリケーションモジュールに同時にアクセスし、ユーザーがまだログインしていない場合、プロバイダーOAuth状態の不一致を許可する

  28. 28

    コードブロックでの実行中にユーザー入力の入力がスキップされるのはなぜですか?

  29. 29

    アプリがバックグラウンドに入ったとき、またはユーザーがアプリを終了したときにタイマーを停止するにはどうすればよいですか?

ホットタグ

アーカイブ