このstackoverflowの質問で、ADを操作するためのコードを見てきました
using ステートメントについて混乱しています。WebClient など、メモリ リークが発生する可能性があるのではないかと心配しているものに使用されているだけだと思いました...
ともかく:
using (var context = new PrincipalContext( ContextType.Domain ))
{
using (var user = UserPrincipal.FindByIdentity( context, "username" ))
{
var groups = user.GetAuthorizationGroups();
...
}
}
行に到達するとvar groups = user.GetAuthorizationGroups()
-ユーザーはnullであるため、その行はNullReferenceで失敗します。デバッグにマウスを合わせると、null が表示され、次に静的メンバーが表示され、すべての値が表示されます。
using ステートメントから行を削除し、必要に応じてvar user = UserPrincipal.FindByIdentity( context, "username" )
ユーザーにデータを入力するだけです。
どうしたの ???
編集:私は詰め込んで、偽のユーザー名を送信していました. 奇妙なことに、デバッグ中に変数をチェックすると、偽のユーザー ID を送信した場合、ユーザーが完全に null であると予想されますが、user: null、静的メンバーの下に表示され、現在ログインしているものの値がありました-だから私はそれが潜在的に using ステートメントに関係していると思った。乾杯!