Security.CreateGroups método
Cria um ou mais grupos de segurança.
Namespace: WebSvcSecurity
Assembly: ProjectServerServices (em ProjectServerServices.dll)
Sintaxe
'Declaração
<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 _
)
'Uso
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
)
Parâmetros
groups
Tipo: WebSvcSecurity.SecurityGroupsDataSetContém as informações sobre um ou mais grupos de segurança.
Comentários
O parâmetro groups deve conter pelo menos um SecurityGroupsDataSet.SecurityGroupsRow na tabela SecurityGroups que define um novo grupo. O SecurityGroupsDataTable pode conter vários objetos SecurityGroupsRow . Project Server valida cada SecurityGroupsRow para o seguinte:
Nome de grupo exclusivo e GUID
Existência de grupo de usuários (se houver)
Há cinco objetos DataTable em um SecurityGroupsDataSet. Somente o SecurityGroupsDataTable deve conter dados. As tabelas de dados estão em ordem, da seguinte maneira:
SecurityGroups Cada linha especifica o GUID da categoria, nome e descrição. Somente o GUID e o nome (WSEC_CAT_UID e WSEC_CAT_NAME) são necessárias para criar uma categoria de segurança.
SecurityPrincipleCategoryRelations Opcional. Cada linha especifica o GUID do grupo e a GUID de categoria de segurança principal. Para o primarycategories, consulte a estrutura PSSecurityCategory .
Permissões de categorias Opcional. Cada linha especifica o GUID do grupo e o GUID de permissão de categoria e define Allow ou Deny para que a permissão. Para obter informações sobre as permissões de categoria, consulte a estrutura PSSecurityCategoryPermission .
GlobalPermissions Opcional. Cada linha especifica o GUID do grupo e a permissão global GUID e define Allow ou Deny para que a permissão. Para obter informações sobre as permissões globais, consulte a estrutura PSSecurityGlobalPermission .
GroupMembers Opcional. Cada linha especifica o GUID do grupo e o GUID do recurso.
Para obter exemplos dos grupos válidos, clique em um grupo na página Gerenciar grupos em Project Web App, para ver os campos e as configurações na página Adicionar ou Editar grupo.
Permissões do Project Server
Permissão |
Descrição |
---|---|
Permite que um usuário gerencie grupos e usuários do Project Server. Permissão global. |
Exemplos
O exemplo a seguir cria um grupo de segurança, adiciona um recurso ao grupo e adiciona uma permissão global definida como Allow para o grupo.
Para obter informações adicionais e um aplicativo de exemplo completo que cria uma categoria de segurança com um grupo, consulte Usando os métodos de segurança na 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);
. . .