bar*_*ron 5 c# using active-directory userprincipal
我在这个stackoverflow问题中看到了一些使用AD的代码
我对使用声明感到困惑.我认为它只是用于你担心可能会成为内存泄漏的东西,比如WebClient或者类似的......
无论如何:
using (var context = new PrincipalContext( ContextType.Domain ))
{
using (var user = UserPrincipal.FindByIdentity( context, "username" ))
{
var groups = user.GetAuthorizationGroups();
...
}
}
Run Code Online (Sandbox Code Playgroud)
当我到达该行时var groups = user.GetAuthorizationGroups()- user为null,因此该行失败并显示NullReference.当我鼠标悬停它调试它显示null,然后显示静态成员,并具有所有值.
如果我从use语句中取出该行,只需var user = UserPrincipal.FindByIdentity( context, "username" )根据需要填充用户.
发生什么了 ???
编辑:我塞满了,发送了一个伪造的用户名.奇怪的是,当我在调试期间检查变量时,如果我发送伪造的用户ID,你会期望用户完全为空,但是它显示在user:null,静态成员下,并且我有当前登录的值 - 所以我认为这可能与使用声明有关.干杯!