Ваш синтаксис, вероятно, не является лучшим для хранения. 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"]
Я думаю, что вы вызываете CommitChanges не на тот объект DirectoryEntry. В документации MSDN ( http://msdn.microsoft.com/en-us/library/system.directoryservices.directoryentries.add.aspx ) говорится следующее (выделено мной)
Вы должны вызвать метод CommitChanges для новой записи , чтобы сделать создание постоянным. Когда вы вызываете этот метод, вы можете затем установить обязательные значения свойств для новой записи. Каждый поставщик предъявляет разные требования к свойствам, которые необходимо установить перед вызовом метода CommitChanges. Если эти требования не выполняются, поставщик может вызвать исключение. Обратитесь к своему провайдеру, чтобы определить, какие свойства необходимо установить перед фиксацией изменений.
Так что, если вы измените свой код на user.
Предполагая, что ваш путь к OU OU = x, DC = y, DC = com
действительно существует - он должен работать: -)
Что нужно проверить:
вы добавляете значение к "samAccountName" - почему бы вам просто не установить его значение:
user.Properties ["sAMAccountName"]. Value = username;
В противном случае вы можете получить несколько samAccountNames - и это не сработает .....
вы не устанавливаете для свойства userAccountControl
ничего особенного - попробуйте использовать:
user .Properties ["userAccountControl"]. Значение = 512; // обычный аккаунт
у вас есть несколько контроллеров домена в вашей организации? Если вы и вы используете эту "безсерверную" привязку (без указания какого-либо сервера в пути LDAP), вы можете быть удивлены, где создается пользователь :-), и это займет от нескольких минут до получаса для синхронизации по всей сети
есть ли у вас строгая политика паролей? Может в этом проблема. Я помню, что раньше нам приходилось сначала создавать пользователя с опцией «не требует пароля», сначала делать .CommitChanges (), затем создавать достаточно мощный пароль, устанавливать его для пользователя и удалять эту опцию пользователя.
Марк