Я использую этот код из приложения .NET Forms, чтобы попытаться создать объект PrincipalContext.Невозможно создать PrincipalContext в ActiveDirectory
var oPrincipalContext = new PrincipalContext(
ContextType.Domain,
"mydomain.workgroup",
"CN=users,CN=mydomain,CN=workgroup",
ContextOptions.Bind,
"ADAdmin",
"ADAdminPassword");
Я также пробовал это, но получил ту же ошибку.
var oPrincipalContext = new PrincipalContext(
ContextType.Domain,
"mydomain.workgroup",
"CN=users,CN=mydomain,CN=workgroup",
ContextOptions.Negotiate,
"ADAdmin",
"ADAdminPassword");
Я также пробовал [email protected]
как идентификатор пользователя.
Я получаю эту ошибку
Message=An operations error occurred.
StackTrace= at System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInit()
at System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit()
at System.DirectoryServices.AccountManagement.PrincipalContext.Initialize()
at System.DirectoryServices.AccountManagement.PrincipalContext.get_ConnectedServer()
at WindowsFormsApplication1.Form1.button1_Click(Object sender, EventArgs e)
InnerException=An operations error occurred.
StackTrace= at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_SchemaEntry()
at System.DirectoryServices.AccountManagement.ADStoreCtx.IsContainer(DirectoryEntry de)
at System.DirectoryServices.AccountManagement.ADStoreCtx..ctor(DirectoryEntry ctxBase, Boolean ownCtxBase, String username, String password, ContextOptions options)
at System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry(DirectoryEntry entry)
at System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInit()
Я войти в систему как пользователь с правами DomainAdmin в AD.
Компьютер, на котором я запущен, имеет привилегии DomainAdmin в AD.
This link имеет решение, но оно предназначено для IIS
, и это не сработало для меня.
This решение также не работает.
Try 'PrincipalContext CTX = новый PrincipalContext (ContextType.Domain, "yourdomain.com", "CN = пользователей, CN = MYDOMAIN, CN = рабочая группа", ContextOptions.SecureSocketLayer | ContextOptions.Negotiate, имя пользователя, пароль) ; 'Поскольку у вас уже есть привилегии администратора, просто попробуйте связать просто, указав имя домена. 'PrincipalContext ctx = new PrincipalContext (ContextType.Domain," yourdomain.com ");' – smr5
Я использовал 'SecureSocketLayer' и получил эту ошибку' Переданные ContextOptions недопустимы для этого типа хранилища. Должен быть указан либо Negotiate, либо SimpleBind, и их нельзя комбинировать. ' – Heinrich
Похоже, что у вас нет' SSL'. Попробуйте 'SimpleBind'. – smr5