Vault API: Пользователи и роли, часть 3
Вопрос
Существует ли способ программно добавить пользователей в сервер Vault?
Решение
Да, в Vault API вы легко можете создать нового пользователя, используя класс Autodesk.Connectivity.WebServices.AdminService.
Я добавлю новый метод к классу AdminSample, который работал в этой статье: Vault API: Пользователи и роли, часть 1 и Vault API: Пользователи и роли, часть 2.
Прошу прощения за то что данные пользователя введены жестко, но надеюсь, что в целях демонстрации этого будет достаточно. Кроме того, нам потребуется назначить какие-либо роли и хранилища новому пользователю, это потребует получение ID соответствующих объектов.
Вот наш новый метод, который называется AddUser():
- // Добавить нового пользователя.
 - // Пусть это будет роль «Администратор» и подключение
 - // к хранилищу 'MaratVault'.
 - //===============================================================
 - public static void AddUser()
 - {
 - using (MyVaultServiceManager mgr = new MyVaultServiceManager(
 - MyVaultServiceManager.Mode.ReadWrite))
 - {
 - try
 - {
 - // Давайте найдем роль «Администратор»
 - //------------------------------------------------------
 - Role[] roles = mgr.Services.AdminService.GetAllRoles();
 - Role admin = FindRole(roles, "Администратор");
 - if( admin == null )
 - {
 - MessageBox.Show("FindRole() завершилось сбоем.");
 - return;
 - }
 - long[] roleIdArray = new long[] { admin.Id };
 - // Я хочу предоставить доступ пользователю к хранилищу
 - // "MaratVault". Для этого необходимо найти Id этого хранилища:
 - //---------------------------------------------------------
 - KnowledgeVault vault = mgr.Services.KnowledgeVaultService.
 - GetKnowledgeVaultByName("MaratVault");
 - long[] vaultIdArray = new long[] { vault.Id };
 - // Теперь создадим нового пользователя
 - //---------------------------------------------------------
 - User newUser = mgr.Services.AdminService.AddUser(
 - "MaratM", // имя пользователя
 - "123456", // пароль
 - AuthTyp.Vault, // проверка подлинности - не Active Directory
 - "Marat", // имя
 - "Mirgaleev", // фамилия
 - "email", // адрес электронной почты
 - true, // активный
 - roleIdArray, // роли
 - vaultIdArray); // хранилища
 - }
 - catch (System.Exception err)
 - {
 - MessageBox.Show(«Возможно, конфликт имени пользователя.\n"
 - + «Имя этого пользователя уже существует.\n\n"
 - + err.ToString(), «Ошибка");
 - } // try
 - } // using
 - } // AddUser()
 
Вы могли заметить, что мы подключаемся к хранилищу в режиме «Чтение и запись» только в том случае, если требуется изменить или добавить какую-либо информацию.
Давайте проверим работоспособность:
Хорошо, получилось! И это было не слишком трудно.
Источник: http://adndevblog.typepad.com/manufacturing/2012/07/vault-api-users-and-roles-part-3.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=384
Опубликовано 06.12.2013Отредактировано 10.12.2013 в 14:31:36