問題タブ [userprincipal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - UserPrincipal.FindByIdentity が PrincipalServerDownException をスローする
認証タスクを実行するために、リモートの顧客の Active Directory に対してバインドする必要があるアプリケーションがあります。
例外は次のとおりです。
PrincipalServerDownException: サーバーは動作していません。
今日まで、物事はうまくいっていました。1 つの変更点は、このコードを実行するアプリケーションが 4 から 4.5 にアップグレードされたことです。問題がアップグレード直後に発生したのか、それとも単なる偶然なのか、はっきりとは言えません。
私は AdFind を使用して顧客の AD に対するバインドをテストしていましたが、問題なく動作しているようです。
もう 1 つの興味深い点は、 が正常にPrincipalContext
初期化され (したがって、リモート ストアとの接続が検証され)、呼び出しをコメント アウトすると、FindByIdentity
呼び出されるだけctx.ValidateCredentials
で正常に動作することです。
c# - ワーカー キューとユーザー コンテキスト
ユーザーが作業を追加できるワーカー キューがあります。ワーカー アイテムが追加されると、コンテキストはユーザー ( HttpContext
) になります。ただし、キューをポーリングし、アイテムを 1 つずつ順番に実行するバックグラウンド スレッドです。
HttpContext
ユーザーが破棄されるとプリンシパルオブジェクトが破棄されるため、ユーザーを格納することはできません
ワーカーで実行できるコードには、プリンシパルが正しいものである必要がありますPrincipalPermissions
。
また、ライフタイム管理 (IoC) はHttpContext
forInRequest
スコープを使用しHttpContext
ますが、正しいプリンシパルなどでを再作成することは可能ですか?
編集: 偽の HttpContext は、ライフ タイム管理の機能があると便利です。これは回避できます。しかし、私たちのバックエンド コードは、ユーザーがシステムのその部分にアクセスできるかどうかを検証するためにこれを使用するため、スレッドの正しいユーザー プリンシパルを持つことに大きく依存しています。ユーザープリンシパルをID、ロール、IsAuthenticated状態で保存し、後で別のスレッドで使用する方法に誰かが答えることができれば、回答としてマークします
c# - 名、姓、および表示名に基づいて Active Directory 内のユーザーを検索する
組織の Active Directory でユーザーを検索しようとしています。
FirstNameまたはLastNameまたはDisplayName が特定の文字列値と一致する場合、ユーザーを返す必要があります。
私のコード:
問題は、1 つのフィルターでしか検索できないことです。
フィルターの AND はできますが、OR はできません。解決策はありますか?
c# - 複数のツリーを持つ AD フォレスト内のグローバル カタログでユーザーを検索する方法
次の 2 つのツリーを持つ AD フォレストがあります。
- ドメイン 1。Domain2 と Domain3 の 2 つの子ドメインがある
- ドメイン 4。子ドメインはありません。
Domain1 の DNS 名はdomain1.localです。Domain4 の DNS 名はdomain4.localです。
各ドメインには、グローバル カタログが有効になっているドメイン コントローラがあります。
ドメイン 4 からユーザーの UserPrincipal をその SID で取得しようとしています。プログラムは Domain2 のマシンから実行されます。
次のコードを使用します。
私の場合、プリンシパルは null です (ユーザーが見つかりませんでした)。
1 つのツリー (domain1 とその子) 内での検索は上記のコード スニペットで問題なく機能しますが、フォレスト全体の検索を実際に有効にするために PrincipalContext コンストラクターのコンテナー パラメーターを変更する方法がわかりません。
当初、「DC=domain1, DC=local」はフォレスト ルートを指していると思っていましたが、ここで誤解しているようです。
また、コンテナー パスを "DC=domain4, DC=local" に変更すると、検索が機能することはわかっていますが、ドメイン 4 のユーザーに対してのみです。
しかし、フォレスト全体を指すコンテナー パスが本当に必要なので、同じ PrincipalContext を使用してフォレスト内の任意のドメインからユーザーを検索できます。
特に私の要件が達成可能かどうかを誰かが明確にすることができれば、どんな助けも大歓迎です。