Partager via


Security.CreateGroups - Méthode

Crée un ou plusieurs groupes de sécurité.

Espace de noms :  WebSvcSecurity
Assembly :  ProjectServerServices (dans ProjectServerServices.dll)

Syntaxe

'Déclaration
<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 _
)
'Utilisation
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
)

Paramètres

Remarques

Le paramètre groups doit contenir au moins un SecurityGroupsDataSet.SecurityGroupsRow dans le tableau SecurityGroups qui définit un nouveau groupe. Le SecurityGroupsDataTable peut contenir plusieurs objets de SecurityGroupsRow . Project Server valide chaque SecurityGroupsRow pour les éléments suivants :

  • Nom de groupe unique et le GUID

  • Existence d'un groupe d'utilisateurs (le cas échéant)

Il existe cinq objets DataTable dans un SecurityGroupsDataSet. Uniquement la SecurityGroupsDataTable doit contenir des données. Les tables de données sont dans l'ordre, comme suit :

  1. SecurityGroups   Chaque ligne spécifie le GUID de catégorie, le nom et la description. Uniquement le GUID et le nom (WSEC_CAT_UID et WSEC_CAT_NAME) sont requis pour créer une catégorie de sécurité.

  2. SecurityPrincipleCategoryRelations   Facultatif. Chaque ligne spécifie le GUID de groupe et le GUID de catégorie de sécurité principal. Pour le primarycategories, consultez la structure PSSecurityCategory .

  3. CategoryPermissions   Facultatif. Chaque ligne spécifie le GUID de groupe et le GUID d'autorisation de catégorie et définit Allow ou Deny pour l'autorisation. Pour plus d'informations sur les autorisations de catégorie, voir la structure PSSecurityCategoryPermission .

  4. GlobalPermissions   Facultatif. Chaque ligne spécifie le GUID de groupe et le GUID d'autorisation globale et définit Allow ou Deny pour l'autorisation. Pour plus d'informations sur les autorisations globales, consultez la structure PSSecurityGlobalPermission .

  5. GroupMembers   Facultatif. Chaque ligne spécifie le GUID de groupe et le GUID de ressource.

Pour obtenir des exemples de groupes valides, cliquez sur un groupe dans la page Gérer les groupes dans Project Web App, pour afficher les champs et les paramètres sur la page Ajouter ou modifier un groupe.

Autorisations Project Server

Autorisation

Description

ManageUsersAndGroups

Permet à un utilisateur de gérer les groupes et utilisateurs de Project Server. Autorisation globale.

Exemples

L'exemple suivant crée un groupe de sécurité, ajoute une ressource au groupe et ajoute une autorisation globale définie sur Allow pour le groupe.

Pour plus d'informations et un exemple d'application complète qui crée une catégorie de sécurité avec un groupe, reportez-vous à l'aide des méthodes de sécurité dans l'interface 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);

. . .

Voir aussi

Référence

Security classe

Security - Membres

WebSvcSecurity - Espace de noms