Создайте Пользователя Active Directory в.NET (C#)

Ваш синтаксис, вероятно, не является лучшим для хранения. FF/Геккон определяет RegExp как расширение Функции.
(FF2 пошел до typeof(/pattern/) == 'function')

кажется, что это характерно для FF - IE, Opera и Chrome, все выдают исключения для него.

Вместо этого используйте любой метод, ранее упомянутый другими: RegExp#exec или String#match.
Они предлагают те же результаты:

var regex = /(?:^|\s)format_(.*?)(?:\s|$)/;
var input = "something format_abc";

regex(input);        //=> [" format_abc", "abc"]
regex.exec(input);   //=> [" format_abc", "abc"]
input.match(regex);  //=> [" format_abc", "abc"]
20
задан Paolo Tedesco 19 August 2009 в 09:31
поделиться

2 ответа

Я думаю, что вы вызываете CommitChanges не на тот объект DirectoryEntry. В документации MSDN ( http://msdn.microsoft.com/en-us/library/system.directoryservices.directoryentries.add.aspx ) говорится следующее (выделено мной)

Вы должны вызвать метод CommitChanges для новой записи , чтобы сделать создание постоянным. Когда вы вызываете этот метод, вы можете затем установить обязательные значения свойств для новой записи. Каждый поставщик предъявляет разные требования к свойствам, которые необходимо установить перед вызовом метода CommitChanges. Если эти требования не выполняются, поставщик может вызвать исключение. Обратитесь к своему провайдеру, чтобы определить, какие свойства необходимо установить перед фиксацией изменений.

Так что, если вы измените свой код на user.

16
ответ дан 30 November 2019 в 00:59
поделиться

Предполагая, что ваш путь к OU OU = x, DC = y, DC = com действительно существует - он должен работать: -)

Что нужно проверить:

  • вы добавляете значение к "samAccountName" - почему бы вам просто не установить его значение:

     user.Properties ["sAMAccountName"]. Value = username;
    

В противном случае вы можете получить несколько samAccountNames - и это не сработает .....

  • вы не устанавливаете для свойства userAccountControl ничего особенного - попробуйте использовать:

      user .Properties ["userAccountControl"]. Значение = 512; // обычный аккаунт
    
  • у вас есть несколько контроллеров домена в вашей организации? Если вы и вы используете эту "безсерверную" привязку (без указания какого-либо сервера в пути LDAP), вы можете быть удивлены, где создается пользователь :-), и это займет от нескольких минут до получаса для синхронизации по всей сети

  • есть ли у вас строгая политика паролей? Может в этом проблема. Я помню, что раньше нам приходилось сначала создавать пользователя с опцией «не требует пароля», сначала делать .CommitChanges (), затем создавать достаточно мощный пароль, устанавливать его для пользователя и удалять эту опцию пользователя.

Марк

8
ответ дан 30 November 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: