Jon*_*sie 0 .net c# active-directory
我正在尝试使用System.DirectoryServices.AccountManagement内容将系统与Active Directory集成.我们的IT人员设置了一个AD框,我的开发框不属于此(或任何)域.
到目前为止,我有3行代码作为测试:
var pc = new PrincipalContext(ContextType.Domain, "machine", "CN=Administrator,CN=Users,DC=domain,DC=com", "Password");
var user = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, "Administrator");
var gp = GroupPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, "Admins");
Run Code Online (Sandbox Code Playgroud)
创建PrincipalContext的工作原理如上所示,但如果我尝试使用域名而不是服务器名称,那么我会收到错误:无法联系服务器.所以,我把它留在机器名称上.
获取用户或组时,出现错误:发生了本地错误.
对于用户,我也尝试了相同的结果:
var user = UserPrincipal.FindByIdentity(pc, IdentityType.DistinguishedName, "cn=Administrator,ou=users,dc=domain,dc=com");
Run Code Online (Sandbox Code Playgroud)
所以,总的来说,我很困惑:(
有没有人有什么建议?
作为旁注,我想踢那些认为"发生本地错误"的程序员将是一个有用的错误消息!
干杯
PS:我可以在我的机器上使用SysInternals AD Explorer,我可以看到我正在尝试使用的dn.
PPS:如果我在创建PrincipalContext时使用machine.domain.com作为名称,它也无法连接.
因此,这是在您完成解决方案之后非常有意义的事情之一.问题是Context正在尝试使用未配置的Negotiated安全上下文.当我使用SimpleBind时它工作得很好:
var pc = new PrincipalContext(ContextType.Domain, "machine", "DC=domain,DC=com", ContextOptions.SimpleBind, "CN=Administrator,CN=Users,DC=domain,DC=com", "Password");
Run Code Online (Sandbox Code Playgroud)
干杯
PS:一个更有用的错误信息会让我节省一天的时间!
归档时间: |
|
查看次数: |
3023 次 |
最近记录: |