Member 11876124 Ответов: 1

Как создать пользователя в active directory с помощью c#.net веб-сервис


Я создаю пользовательскую справку "https://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C-эта статья . но когда я создаю новую учетную запись этого сообщения об ошибке будет отображаться

Система.UnauthorizedAccessException: Доступ запрещен.

в системе.Каталог.Взаимодействие.Небезопасные методы.МААШ.SetInfo()
в системе.Каталог.Класс directoryentry.CommitChanges()
при обслуживании.CreateAdAccount (String sUserName, String sPassword) in c:\inetpub\wwwroot\ADAuthentication\App_Code\Service.cs:line 121



как устранить эту ошибку. пожалуйста, помоги мне.

Что я уже пробовал:

Howto: (Почти) Все в Active Directory через C#[^]

1 Ответов

Рейтинг:
1

Kornfeld Eliyahu Peter

Чтобы взаимодействовать с Active Directory, вы (пользователь, запускающий код) должны иметь соответствующее право. Например, никто не может создать нового пользователя в Active Directory...
Ваша веб-служба работает под учетными данными с недостаточным правом, поэтому вы получаете ошибку...


Member 11876124

как обеспечить право, пожалуйста, направьте меня

Kornfeld Eliyahu Peter

Вы не можете предоставить прямо из кода!!! У вас должен быть пользователь с правом, назначенным системным менеджером...

Member 11876124

Привет,
если мне дают полное право пользователя как (АВС), как мне проверить подлинность этого пользователя с помощью с помощью ASP .чистый код, он(АВС) - это создать нового пользователя в Active каталог.

Kornfeld Eliyahu Peter

Если у вас есть учетные данные с соответствующим правом, то вы можете выдать себя за него из своего кода...
Однако это включает в себя некоторые собственные API (WIN32)...
Здесь есть хороший образец: https://platinumdogs.me/2008/10/30/net-c-impersonation-with-network-credentials/

Member 11876124

привет,

когда я пытаюсь взорвать код

общественного строка CreateUserAccount(строка ldapPath, строке имя пользователя,
строки парольпользователя)
{
пробовать
{
string oGUID = строка.Пустой;
строка connectionPrefix = "LDAP://" + ldapPath;
DirectoryEntry dirEntry = новый DirectoryEntry(connectionPrefix);
DirectoryEntry newUser = dirEntry.Детей.Добавить
("CN=" + userName, " user");
новый пользователь.Свойства ["samAccountName"]. Value = имя пользователя;
новый_пользователь.CommitChanges();
oGUID = новый_пользователь.Идентификатор GUID.Метод toString();

новый пользователь.Invoke ("SetPassword", new object[] { userPassword });
новый_пользователь.CommitChanges();
dirEntry.Закрывать();
новый_пользователь.Рядом();
}
улов (система.Каталог.DirectoryServicesCOMException E)
{
//DoSomethingwith -- & gt; E. сообщение.Метод toString();

}
возвращение огуида;
}

я столкнулся с проблемой в следующей строке кода:-
новый пользователь.Свойства ["samAccountName"]. Value = имя пользователя;

эта строка дает ошибку времени компиляции("
Ошибка 2 Система не вызываемых членов.Каталог.Класс directoryentry.Свойства " не могут использоваться как метод")

как решить эту проблему. пожалуйста, помогите мне