問題タブ [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.
wcf - System.ServiceModel: SSPI への呼び出しが失敗しました。ターゲット プリンシパル名が正しくありません
WCF サービス エンドポイントにアクセスしようとしています。ただし、サービスにアクセスしようとするたびに、サーバーで上記の例外が発生し続けます (ログを確認すると)。
このサービスは、基本的に相互証明書の動作をします。クライアント証明書とサービス証明書が一覧表示されます。また、web.conf の endpoint\identity セクションの下に userPrincipleName を指定します... 同様のセットアップの構成ファイルの例を以下に示します...
私が説明したエンドポイントになります。
それがサービスと振る舞いです。
私は、このことからデータを取得するためにできる限りのことをしています。私は 1 つの問題点に直面しています。それが私がこれを間違った方法で行っているためなのか、それとも私が近くにいて、ちょっとした問題を乗り越える必要があるだけなのかはわかりません. クライアントの web.config で、同様にエンドポイントの動作を設定しました...
そして、これが私のエンドポイントです...
このサービスにアクセスしようとすると、この例外が発生します...
ローカル マシンにリストされている適切なストアに証明書があり、その証明書への適切な書き込みを許可していることに注意してください。私は、ここで自分自身をさらに悩ませていることに気づき、物事を壁にぶつけて何がくっつくかを見るのではなく、何をするのが正しいのかを理解しようとしています. どのステップが欠けていますか? MutualCertificate で保護されたサービスからデータを受信する最良の方法は何ですか? 適切な userPrinciplename を取得するにはどうすればよいですか? サービス web.config にリストされているものだと思いましたか? 私はこれを正しい方法で行っていますか?私は近づいていますか、それとも自分のためにもっと大きな混乱を引き起こしていますか?
c# - PrincipalContextのコンテナーを指定した後、ユーザーが見つかりません
ActiveDirectoryでユーザー名でユーザーを検索しようとしています。
これは機能します:
これはしません:
エラーメッセージが表示されます:
サーバー上にそのようなオブジェクトはありません。
これが私のActiveDirectoryセットアップのスクリーンショットです:
また、次のコンテナを使用してみました。
これも同様に失敗しました。
'Users'コンテナにアクセスしているときにコンテナを指定するにはどうすればよいですか?より複雑な要件を持つルックアップを導入する前に、これを初期の単純なセットアップとして実行しようとしています。とにかくこれをトラブルシューティングする必要があるので、私は単純な解決策に甘んじたくありません、と私は信じています。
https - SecurityFilterでgetUserPrincipalを呼び出すと、IllegalStateException:Handshakeが完了しませんでした
私はJersey1.16を使用して、アプリケーションにhttpsサポートを追加しようとしました。ジャージーhttps_grizzlyの例を参照として使用して、SecurityFilter.authority()にコード行を追加しました。
次に、httpsとsetNeedClientAuthを使用してサーバーを起動してfalseに設定し、startServer()でServer.javaを変更してクライアント側の証明書を使用しないようにしました。
setNeedClientAuth(false)のブールパラメータは、クライアント証明書を要求するために元々trueです。このようにして、私のアプリケーションは証明書の有無にかかわらずクライアントに適応できると思います。証明書がない場合、getUserPrincipal()はnullを返す可能性があるため、これが匿名ユーザーであることがわかります。残念ながら、この場合、システムは次のように例外を発生させ、クライアントは何も受信しませんでした。
この場合、なぜgetUserPrincipal()を使用できなかったのですか?誰かがそれについて知っていますか?ありがとうございました。
c# - System.DirectoryServices.AccountManagement 名前空間を使用して Active Directory ユーザー プロパティを取得するにはどうすればよいですか?
ユーザーから Active Directory のプロパティを取得し、使用したいと考えていますSystem.DirectoryServices.AccountManagement
。
私のコード:
asp.net-mvc-4 - Active Directory 関連の MVC4 の AppDomainUnloadedException
ASP.NET MVC アプリケーションがあります。これはドメインで実行され、 を呼び出してユーザーを決定しますUserPrincipal.Current
。ほとんどの場合、これは美しく機能します。ときどき (おそらく 5 回に 1 回)、アプリを IIS に発行した直後に、AppDomainUnloadedException がスローされます。
例外を引き起こしているコードの特定の行は次のとおりです。
コール スタックの残りの部分は次のとおりです。
かなり掘り下げた後、例外のランダムな性質のために、問題はおそらくこれに関連していると結論付けました:
http://support.microsoft.com/kb/2683913
そのため、修正プログラムをインストールしたところ、予想どおり、問題は解消されました。それは火曜日でした。今朝、再び例外が発生しました。hotifx が実際にインストールされていることを確認しました。モジュールの読み込みメッセージをオンにすると、次のようになりました。
そのため、その .dll が実際にはホットフィックスのものであり、(サイズとバージョン番号が一致する) であることを確認しました。
この例外が発生すると同時に、イベント ログに次のイベントが記録されます。
エラーの唯一のデータは次のとおりです: 0x8007006D は、エラーが既に述べた致命的な通信エラーがあったことを単に意味すると信じています...
面白いことに、例外ダイアログがポップアップすると、「この例外のハンドラがある場合、プログラムは安全に続行される可能性があります」と表示されます。あなたのアプリが UserPrincipal.Current を必要としない場合、これは真実ですが、この例外の後に再度呼び出すと例外が再スローされるため、そこで「安全に継続された」という主張に疑問を投げかけます。
これで、アプリを再実行しても問題は発生しません。公開直後以外は、まだこれが発生したことはありません。私たちのセットアップと他のプロジェクトとの関係により、このアプリは IIS でデバッグする必要があります。つまり、コードを変更するたびに公開する必要があります。つまり、通常は 1 日を通してこれを確認します (火曜日の午後と昨日は例外)。 .
調べてみると、このバグは ASP.NET MVC に関連していることが多いようですが、WinForms や ASP.NET に関連しているのを見たことはないと思います... わかりませんそれがどのように問題になるかですが、そこに関係があるかもしれません。
これはMSのバグだと思います。UserPrincipal.Current が AppDomainUnloadedException を引き起こす正当な条件があるとは想像できませんが、ここで Stackoverflow を試してみようと思いました...
c# - UserPrincipal SetPassword メソッドの使用中に AccessDenied が発生しました
UserPrincipalクラスを使用してユーザーのパスワードを変更しているときに、AccessDenied例外が発生します。
Windows 認証 (ドメイン ユーザー)を介して Asp.Net アプリケーションにログインしています。他のユーザーのパスワードを変更しようとすると、アクセス拒否の例外が発生します。ログインしているユーザーと同じことをしている場合、すべて問題ありません-パスワードを変更できます。
PrincipalContextを使用してUserPrincipalオブジェクトを取得する場合、「プリンシパル - domain\adminAD」が AD で特権を持っていることは何でもすると思いました。
メソッドの本体:
私はすでに答えを探しており、同様のトピックに対する答えがたくさんあることを知っています. しかし、それらのどれも私の問題を説明していないと思います。
c# - Windows 認証と匿名認証を使用して UserPrincipal を取得する
次のコードは、ネットワーク上のローカル ユーザーに対して IIS で Windows 認証のみが有効になっている場合にのみ機能します。
それ以外の場合は、次の例外がスローされます。
[ArgumentException: (&(objectCategory=user)(objectClass=user)(|(userPrincipalName=)(distinguishedName=)(name=))) 検索フィルターが無効です。] System.DirectoryServices.ResultsEnumerator.MoveNext() +434305 システム.DirectoryServices.SearchResultCollection.get_InnerList() +282 System.DirectoryServices.SearchResultCollection.get_Count() +9 System.DirectoryServices.AccountManagement.ADStoreCtx.FindPrincipalByIdentRefHelper(Type principalType, String urnScheme, String urnValue, DateTime referenceDate, Boolean useSidHistory) +1898 DirectoryServices.AccountManagement.ADStoreCtx.FindPrincipalByIdentRef(型 principalType、文字列 urnScheme、文字列 urnValue、DateTime referenceDate) +85 System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext コンテキスト、型 principalType、Nullable`1 identityType, String identityValue, DateTime refDate) +211 System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue) +95 WebApplication1.Index.GetUserPrincipal(String userName) in C:\Users\xxx\Documents\ C:\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\Index の Visual Studio 2010\Projects\WebApplication1\WebApplication1\Index.aspx.cs:38 WebApplication1.Index.Page_Load(オブジェクト送信者、EventArgs e) .aspx.cs:19 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page .ProcessRequestMain (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint) +3064DateTime refDate) +211 System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue) +95 WebApplication1.Index.GetUserPrincipal(String userName) in C:\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\ WebApplication1\Index.aspx.cs:38 C:\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\Index.aspx.cs:19 システム内の WebApplication1.Index.Page_Load(オブジェクト送信者、EventArgs e)。 Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint ) +3064DateTime refDate) +211 System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue) +95 WebApplication1.Index.GetUserPrincipal(String userName) in C:\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\ WebApplication1\Index.aspx.cs:38 C:\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\Index.aspx.cs:19 システム内の WebApplication1.Index.Page_Load(オブジェクト送信者、EventArgs e)。 Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint ) +3064C:\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\Index.aspx.cs:38 WebApplication1.Index. C:\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\Index.aspx.cs:19 の Page_Load(Object sender, EventArgs e) System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o 、Object t、EventArgs e) +25 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint、Boolean includeStagesAfterAsyncPoint) +3064C:\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\Index.aspx.cs:38 WebApplication1.Index. C:\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\Index.aspx.cs:19 の Page_Load(Object sender, EventArgs e) System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o 、Object t、EventArgs e) +25 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint、Boolean includeStagesAfterAsyncPoint) +3064\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\Index.aspx.cs:38 C:\Users\xxx\Documents\Visual Studio 2010\ の WebApplication1.Index.Page_Load (オブジェクト送信者、EventArgs e) Projects\WebApplication1\WebApplication1\Index.aspx.cs:19 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint) +3064\Users\xxx\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\Index.aspx.cs:38 C:\Users\xxx\Documents\Visual Studio 2010\ の WebApplication1.Index.Page_Load (オブジェクト送信者、EventArgs e) Projects\WebApplication1\WebApplication1\Index.aspx.cs:19 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint) +3064Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064
Windows 認証と匿名認証の両方がオンになっているときに、ローカル ユーザーの UserPrincipal を取得するためにこれを機能させる方法はありますか?
active-directory - Active DirectoryからEmailAddressNULLを取得する(AccountManagement UserPrincipal)
問題があり、解決策が見つかりません:
EmailAddress
Webアプリケーションにアクセスしている電子メール()ユーザーを取得するための以下のコードがあります。
一部のユーザー(これまでのところ3人)の場合、電子メール(EmailAddress
)にはnull値が含まれています。
以下のコードも試してみましたが、同じことが起こります。
Exchange Serverと関係があるのではないかと疑っていますが、知識が不足しているとは言えません。
誰か助けてもらえますか?
asp.net - System.DirectoryServices.AccountManagement.Principal.GetGroups は、一部のユーザーに対して 1 つのグループ「ドメイン ユーザー」のみを返します。
以下のコードは数週間前は機能していましたが、最近多くのユーザー アカウントのグループを取得できなくなり、何が変わったのかわかりません。コードは変更されていません。
.GetGroups()
メソッドは、ドメイン上の多くのユーザーに対してドメインユーザーという1つのグループのみを返しますが、私のユーザーと他のいくつかのユーザーに対しては、グループの完全なコレクションを返します。
目標は、このユーザーが属するグループのリストを取得することです。Active Directory の構造についてはよくわかりません。