問題タブ [principalcontext]
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# - PrincipalContext.ValidateCredentialsを使用してローカルマシンに対して認証するときにエラーが発生しましたか?
Login
ローカルマシンのクレデンシャルに対してユーザー名とパスワードを検証するメソッドを含むWCFサービスがありますが、一見ランダムな期間が経過すると、一部のユーザーでは機能しなくなります。
実際のログインコマンドは次のようになります。
これは数日間は正常に機能しているように見えますが、その後、一部のユーザーでは突然機能を停止し、次の例外をスローします。
複数のユーザー名を使用した、同じユーザーによるサーバーまたは共有リソースへの複数の接続は許可されていません。サーバーまたは共有リソースへの以前の接続をすべて切断して、再試行してください。(HRESULTからの例外:0x800704C3)
System.DirectoryServices.AccountManagement.CredentialValidator.BindSam(String target、String userName、String password)で
System.DirectoryServices.AccountManagement.CredentialValidator.Validate(String userName、String password)で
System.DirectoryServices.AccountManagement.PrincipalContext.ValidateCredentials(String userName、String password)で
MyNamespace.LoginService.Login(String username、String password、String ipAddress)のC:\ Users \ me \ Desktop \ somefolder \ LoginService.svc.cs:line 67
67行目は次のとおりです。if (pContext.ValidateCredentials(username, password))
重要かどうかはわかりませんが、エラーメッセージの最後の行は、本番サーバー上のファイルへのパスではなく、開発マシン上のVSソリューションのパスです。
失敗した場合、一部のユーザーのみが失敗しますが、他のユーザーは引き続き正常にログインできます。エラーを一時的に修正するために私が見つけた唯一のことは、実行中iisreset
です。Webサイトの停止/開始、またはアプリプールのリサイクルは機能しません。
要求に応じてエラーを再現することはできません。複数のセッションとIPアドレスから同じユーザーでログインしたり、同じブラウザセッションから同時に別のユーザーでログインしたり、ログインボタンをスパムして複数回実行しようとしたりしましたが、すべてが表示されますうまく動作します。
ロギングから、ユーザーが過去に正常にログインできたことがわかります。
ローカルマシンに対して認証する理由は、ユーザーがFTPアクセス用にローカルで作成されたアカウントを持っており、独自のカスタムログインシステムを構築したり、ユーザーに2セットの資格情報を記憶させたりしたくないためです。
コードはユーザーの資格情報のみを認証する必要があり、ユーザーの資格情報に対して他のことは何もしません。を使用する他のコードはなくSystem.DirectoryServices
、ファイルIOは実行されておらず、Webアプリケーションの実行に必要なファイル以外のファイルシステム上でローカルにアクセスすることはできません。
数日後に、そのエラーが一見ランダムに表示される原因は何ですか?そして、どうすればそれを修正できますか?
サーバーは、IIS6.0を実行するWindowsServer 2003であり、.NetFramework4.0を使用するようにセットアップされています。
c# - msTSProfilePath、msTSHomeDirectory などで C# DirectoryServices UserContext を拡張する方法
ActiveDirectory ユーザー オブジェクトのターミナル サービス プロパティを読み書きする必要があります。私はこれを試しました:
そして、私はこれを試しました:
しかし、何も機能しません。
次のプロパティ名でも試しました:
- ターミナル サービス プロファイル パス
- ターミナル サービス ホーム ディレクトリ
- ターミナルサービスホームドライブ
しかし、運がありません。どんな助けでも大歓迎です!
ありがとう、ヴォジン
c# - C# Active Directory プリンシパルコンテキストのアクセス許可
私は答えを探していましたが、答えが見つからないようですが、見逃したのかもしれません。WPF アプリケーションがあり、PrincipalContext を使用して MS AD に接続しています。私の開発マシンはドメインに参加しておらず、問題なく接続できます。ただし、ターミナル サーバーでは、有効な資格情報を PrincipalContext コンストラクターに渡しているにもかかわらず、現在ログインしているユーザーが Domain Admins グループに属している場合にのみアプリケーションが接続できます。自分のアカウント、「サービス」アカウント、さらには管理者アカウントを使用してみました。
これは開発マシンでは機能していますが、ターミナルサーバーでは機能していません。
ターミナル サーバーでは、例外がスローされます。メッセージは「接続を確立できません」です。さらに調査したところ、LDAP がエラー コード 91 を返していることがわかりました。これも調べましたが、まだ接続できないようです。パラメーターのすべての組み合わせを PrincipalContext に渡そうとしたに違いありません。
編集:
私はそれでもう少し遊んでいます。ターミナル サーバーで接続する PrincipalContext または LdapConnection を取得できませんが、開発マシンでは両方とも動作します。接続する唯一のものは DirectoryEntry です。多分それはより多くの手がかりを提供するでしょうか?
助言がありますか?
c# - 名、姓、および表示名に基づいて Active Directory 内のユーザーを検索する
組織の Active Directory でユーザーを検索しようとしています。
FirstNameまたはLastNameまたはDisplayName が特定の文字列値と一致する場合、ユーザーを返す必要があります。
私のコード:
問題は、1 つのフィルターでしか検索できないことです。
フィルターの AND はできますが、OR はできません。解決策はありますか?
c# - C# - ".\" がユーザー名の前に追加されている場合、ローカル マシン ユーザーを検証できない
System.DirectoryServices.AccountManagement ライブラリを使用してローカル ユーザーを検証しています。
私は次のコードを持っています:
しかし、「.\」を前に追加して正しいユーザー名を渡すときはいつでも、たとえば、ユーザー名が「test」で、「.\test」のようなユーザー名を渡す場合、例外が発生します
誰か助けてください。「.\」を削除すると、正常に動作します。
私のもう 1 つの条件は、ドメイン ユーザーではなくローカル マシン ユーザーのみを検証することです。
助けてください
c# - Firefox での UserPrincipal.FindByIdentity エラー
ユーザーが属する AD グループのリストを取得する方法があります。コードは次のとおりです。
IE と Chrome の両方で、これは正常に機能しますが、Firefox では常に DirectoryServicesCOMException が返され、それがuser = UserPrincipal.FindByIdentity(yourDomain, userName);
どのような例外なのかさえわかりません。誰かがエラーの内容とその修正方法を説明してもらえますか? どうもありがとう!
c# - asp.net c# で PrincipleSearcher を使用して、AD アカウントから複数の OU を 1 回の検索に含める方法
シナリオ: Active Directory
ユーザー名検索は、検索項目 (名または姓など) に対して結果を返す必要があります。AD アカウントの異なる組織単位として設定されている 6 つの国があります。例: 英国 (OU= UK)、フランス (OU = FR)。これで、ユーザーは OU=UK または OU=FR のいずれかに属するユーザー名で表示されるはずです。
ライブラリPrincipalSearcher
から使用していますSystem.DirectoryServices.AccountManagement
問題:上記により、OU=UK にのみ属するユーザー名を返すことができます。
質問:に複数の組織単位を追加するにはどうすればよいですかPrincipalContext
。
asp.net-mvc - 45秒ごとにasp.net mvcの応答が遅い
約 45 秒ごとに遅い要求を実行している MVC 4 アプリがあります。通常は 200 ミリ秒で、すべてのリクエストは約 45 秒間 200 ミリ秒で、約 4500 ミリ秒のリクエストがあります。その後、200ms に戻ります。
私はキャッシュを設定していません。ただし、AD のクエリには PrincipalContext を使用しています。
通話のプロファイリングの設定を開始する前に、誰かが何か知っているかどうか疑問に思っていました。
素早い:
スロー: