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