Поделиться через


Метод Security.CreateGroups

Создание одного или нескольких групп безопасности.

Пространство имен:  WebSvcSecurity
Сборка:  ProjectServerServices (в ProjectServerServices.dll)

Синтаксис

'Декларация
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Security/CreateGroups", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/Security/",  _
    ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/Security/",  _
    Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Sub CreateGroups ( _
    groups As SecurityGroupsDataSet _
)
'Применение
Dim instance As Security
Dim groups As SecurityGroupsDataSet

instance.CreateGroups(groups)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Security/CreateGroups", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/Security/", 
    ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/Security/", 
    Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public void CreateGroups(
    SecurityGroupsDataSet groups
)

Параметры

Замечания

Параметр groups должен содержать по крайней мере один SecurityGroupsDataSet.SecurityGroupsRow в таблице SecurityGroups , который определяет новую группу. SecurityGroupsDataTable может содержать несколько объектов SecurityGroupsRow . Project Server проверяет каждый SecurityGroupsRow из следующих:

  • Уникальное имя группы и GUID

  • Наличие группы пользователей (при его наличии)

Существует пять объектов DataTable в SecurityGroupsDataSet. SecurityGroupsDataTable должен содержать данные. Таблицы данных выполняется в порядке, следующим образом:

  1. Групп безопасности по   Каждая строка указывает категорию GUID, имя и описание. Для создания категории безопасности требуются только идентификатор GUID и имя (WSEC_CAT_UID и WSEC_CAT_NAME).

  2. SecurityPrincipleCategoryRelations   Необязательный атрибут. Каждой строки указывает идентификатор GUID группы и категории безопасности основной идентификатор GUID. Структура PSSecurityCategory primarycategories, см.

  3. CategoryPermissions   Необязательный атрибут. Каждая строка указывает идентификатор GUID группы и разрешение категории GUID и задает Allow или Deny для разрешения. Сведения о разрешениях категории Просмотр структуры PSSecurityCategoryPermission .

  4. GlobalPermissions   Необязательный атрибут. Каждая строка задает глобальное разрешение GUID и GUID группы и задает Allow или Deny для разрешения. Сведения о глобальных разрешений Просмотр структуры PSSecurityGlobalPermission .

  5. GroupMembers   Необязательный атрибут. Каждая строка указывает идентификатор GUID группы и GUID ресурса.

Примеры допустимого группы выберите группу на странице Управление группами в Project Web App для просмотра полей и параметров на странице "Добавление или изменение группы".

Разрешения Project Server

Разрешение

Описание

ManageUsersAndGroups

Позволяет пользователю управлять Project Server пользователей и групп. Глобальное разрешение.

Примеры

Следующий пример создает группу безопасности, добавляет ресурс в группу и добавляет глобальное разрешение, задайте значение Allow для группы.

Дополнительные сведения и полный пример приложения, который создает одну категорию безопасности с группой в разделе С помощью методов безопасности в PSI.

using System;
using System.Net;
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
CookieContainer cookiecontainer = new CookieContainer();
SvcSecurity.Security security = new SvcSecurity.Security();
security.Url = "https://ServerName/ProjectServerName/_vti_bin/psi/security.asmx";
security.CookieContainer = cookiecontainer;
security.Credentials = System.Net.CredentialCache.DefaultCredentials;
. . .
// Create a GUID for the new group.
Guid groupGuid = Guid.NewGuid();

// Specify basic group information.
SvcSecurity.SecurityGroupsDataSet groupDs =
   new SvcSecurity.SecurityGroupsDataSet();
SvcSecurity.SecurityGroupsDataSet.SecurityGroupsRow groupRow =
   groupDs.SecurityGroups.NewSecurityGroupsRow();
groupRow.WSEC_GRP_NAME = "SDK Test Group";
groupRow.WSEC_GRP_UID = groupGuid;
groupRow.WSEC_GRP_DESC = "This is the SDK Test Group.";
groupDs.SecurityGroups.AddSecurityGroupsRow(groupRow);

// Set the GUID for an existing resource.
Guid resourceUid = new Guid("a1fcbf91-e91d-44e2-a4a7-3b4b698cb984");

// Add the resource to the new group.
SvcSecurity.SecurityGroupsDataSet.GroupMembersRow groupMembersRow =
   groupDs.GroupMembers.NewGroupMembersRow();
groupMembersRow.WSEC_GRP_UID = groupGuid;
groupMembersRow.RES_UID = resourceUid;
groupDs.GroupMembers.AddGroupMembersRow(groupMembersRow);

// Specify a global permission for the group.
SvcSecurity.SecurityGroupsDataSet.GlobalPermissionsRow globalPermRow =
   groupDs.GlobalPermissions.NewGlobalPermissionsRow();
globalPermRow.WSEC_GRP_UID = groupGuid;
// Add a permission that applies to the group. 
// For example, add the "About Microsoft Office Project Server" permission.
globalPermRow.WSEC_FEA_ACT_UID = 
   PSLibrary.PSSecurityGlobalPermission.AboutMicrosoftOfficeProjectServer;
globalPermRow.WSEC_ALLOW = true;
groupDs.GlobalPermissions.AddGlobalPermissionsRow(globalPermRow);

// Now that all the rows are added to the relevant tables,
// create the group.
security.CreateGroups(groupDs);

. . .

См. также

Справочные материалы

Security класс

Элементы Security

Пространство имен WebSvcSecurity