Главная > C#, Управление пользователями, LAEMWS > Как сделать простой синхронизатор учетных записей с помощью веб-сервиса LAEMWS?

Как сделать простой синхронизатор учетных записей с помощью веб-сервиса LAEMWS?

image Довольно часто возникает вопрос, как же синхронизировать учетные записи. Существует целый ряд способов, о которых я рассказывал здесь. Однако в этой записи я опишу свой любимый способ, который, с одной стороны, выглядит как изобретение велосипеда, но с другой – и это очень важно – позволяет создать гибкий управляемый инструмент, эффективно синхронизирующий учетные записи вашего учебного заведения.

Я специально не буду приводить пример кода, а просто опишу концепцию, которую мы успешно применяем не в одном десятке внедрений – вы сами сможете реализовать собственный стиль программирования.

Допустим, у вас есть таблица students, содержащая информацию о студентах и ряд полей, которые необходимо хранить в сервисе Windows Live. В этой таблице также должен содержаться Alias (адрес ящика до знака @), который оптимальнее всего генерировать в информационной системе, являющейся содержащей данные об учетных записях.

Алгоритм синхронизации довольно простой:

  1. Создание дополнительных объектов базы данных – это позволит никак не модифицировать исходную базу данных.
    1. Добавьте связанную таблицу student_hashes, содержащую код студента и поле hash, по умолчанию равное NULL.
    2. Создайте представление (View) student_hashstate, содержащее все значимые поля таблицы students и поле hash (CHECKSUM), которое в режиме реального времени будет просчитывать контрольную сумму этих полей.
  2. Создание учетных записей:
    1. В цикле синхронизации, в части создания новых учетных записей, выбирайте из таблицы students 10 первых записей, в которых hash таблицы student_hashes (связанной по LEFT JOIN) равен NULL.
    2. Для этих записей используйте команду PS_Mailbox_Create LAEMWS.
    3. Для обновления дополнительных полей (организация, отдел и т.д.) используйте командлет set_user в методе PS_Execute LAEMWS.
    4. В случае успеха вставьте в таблицу student_hashes код студента и вычисленный hash.
    5. Вы также можете отключить экран выбора языка и часового пояса следующим способом.
  3. Обновление учетных записей
    1. В цикле обновления выбирайте 10 первых записей записи, в которых поле hash в таблицах student_hashstate и student_hashes отличается – это обновленные записи.
    2. Для них выполняйте команду set-mailbox/set-user метода PS_Execute LAEMWS.
    3. В случае успеха запишите в таблицу student_hashes обновленный hash для текущего студента.
    4. Теперь хэши в таблице совпадают и учетные записи синхронизированы.
  4. Вы можете оформить синхронизатор в виде консольного приложения, которое поместите в планировщик Windows частотой 2-3 минуты. Подсказка: в параметрах задачи планировщика вы можете настроить запуск даже до входа в Windows, что очень полезно на серверных операционных системах – синхронизатор стартует даже после перезапуска перед вводом логина и пароля, несмотря на то, что это не служба.

В виде программного кода – это 20-30 строчек полностью управляемого решения, где вы можете гибко управлять параметрами создания/обновления учетных записей.

Technorati Теги: ,
Реклама
  1. Комментариев нет.
  1. 15.11.2010 в 00:03

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: