Security.CreateGroups-Methode
Erstellt eine oder mehrere Sicherheitsgruppen.
Namespace: WebSvcSecurity
Assembly: ProjectServerServices (in ProjectServerServices.dll)
Syntax
'Declaration
<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 _
)
'Usage
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
)
Parameter
groups
Typ: WebSvcSecurity.SecurityGroupsDataSetEnthält die Informationen über eine oder mehrere Sicherheitsgruppen an.
Hinweise
Der Parameter groups muss mindestens ein SecurityGroupsDataSet.SecurityGroupsRow in der Tabelle SecurityGroups enthalten, die eine neue Gruppe definiert. Die SecurityGroupsDataTable kann mehrere SecurityGroupsRow -Objekte enthalten. Projektserver überprüft die einzelnen SecurityGroupsRow für Folgendes:
Den eindeutigen Namen und GUID
Vorhandensein der Gruppenbenutzer (sofern vorhanden)
In einer SecurityGroupsDataSetsind fünf DataTable Objekte vorhanden. Nur die SecurityGroupsDataTable muss Daten enthalten. Die Datentabellen sind in der Reihenfolge, wie folgt:
Zusammenzufassen Jede Zeile gibt die Kategorie-GUID, Name und Beschreibung. Nur die GUID und der Name (WSEC_CAT_UID und WSEC_CAT_NAME) sind erforderlich, um eine Sicherheitskategorie zu erstellen.
SecurityPrincipleCategoryRelations Optional. Jede Zeile gibt die Gruppe GUID und die primäre Sicherheitskategorie-GUID. Die Primarycategories finden Sie unter der Struktur PSSecurityCategory .
CategoryPermissions Optional. Jede Zeile gibt den GUID-Gruppe und die Kategorieberechtigung GUID und Allow oder Deny für die Berechtigung festgelegt. Informationen über die Kategorieberechtigungen finden Sie unter der Struktur PSSecurityCategoryPermission .
GlobalPermissions Optional. Jede Zeile gibt den GUID-Gruppe und die globale Berechtigung GUID und Allow oder Deny für die Berechtigung festgelegt. Informationen zu globalen Berechtigungen finden Sie unter der Struktur PSSecurityGlobalPermission .
GroupMembers Optional. Jede Zeile gibt die GUID der Gruppe und die Ressourcen-GUID.
Beispiele für gültige Gruppen klicken Sie auf eine Gruppe auf der Seite Gruppen verwalten in Project Web App, um die Felder und die Einstellungen auf der Seite Gruppe hinzufügen oder bearbeiten angezeigt.
Project Server-Berechtigungen
Berechtigung |
Beschreibung |
---|---|
Ermöglicht einem Benutzer das Verwalten von Project Server-Benutzer und Gruppen. Die globale Berechtigung. |
Beispiele
Im folgenden Beispiel wird eine Sicherheitsgruppe erstellt, der Gruppe eine Ressource hinzugefügt und fügt eine globale Berechtigung auf Allow für die Gruppe festgelegt.
Weitere Informationen und eine komplette Beispielanwendung, mit die erstellt eine Sicherheitskategorie mit einer Gruppe finden Sie unter Mithilfe von Sicherheitsmethoden in die 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);
. . .