SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Verständnissfrage SPRoleAssignment(SPPrincipal principal)

Geprüfte Antwort Dieser Beitrag hat 3 Antworten

Ohne Rang
11 Beiträge
Dodo erstellt 26 Aug. 2009 10:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Guten Tag.

Ich habe bisher meine SPRollAssignments immer mit Strings belegt und bin damit auch sehr gut gefahren, nun soll ich aber

SPRoleAssignment

 

(SPPrincipal principal)

verwenden. Diesen Befehl verstehe ich nicht.

Handelt es sich um ein neues Objekt vom Typen SPPrincipal, dass ich mit einem beliebigen Variablennamen erstelle?

Und wie bekomme ich bei diesem Objekt meine Benutzergruppe benannt etc. ?

Mag eine dumme Frage sein, aber ich habe erst vor 3 Wochen mit C# angefangen und bitte um etwas Nachsicht, gerne auch idiotensichere Erklärungen ;P

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Aug. 2009 10:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

SPPrincipal kann ein Benutzer oder eine Benutzergruppe sein. Die bekommst Du z.B. aus SPWeb.AllUsers oder SPWeb.Groups.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
11 Beiträge
Dodo Als Antwort am 26 Aug. 2009 11:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist schonmal ein guter Tipp, ich beginne es zu verstehen.

Nun habe ich so weit angefangen mit meinem Code, mit dem ich eine Benutzergruppe mit dem Namen "Besitzer von XYZ" anlegen will, wobei XYZ 'ne vorher definierte Variable mit dem Kundennamen ist. Für jeden Kunden sollen nämlich eigene Gruppen der Berechtigung angelegt werden. Momentan läuft der Code allerdings nicht und noch konnte ich das Problem nicht fesstellen:

 

 

string

 

Besitzer = "Besitzer von" + Global.g_stKunde;  //erstellt mir "Besitzer von MarktA" zum Beispiel, als Gruppenrechtsnamen

 

 

SPRoleDefinition RoleDefinitionAdmin = extraSite.RoleDefinitions.GetByType(SPRoleType.Administrator);   //setzt Adminrechte

 

 

SPRoleAssignment RoleAssignmentAdmin = new SPRoleAssignment(SPPrincipal Besitzer);    //ich erstelle mir eine Rechtegruppe mit variable als Namen

RoleAssignmentAdmin.RoleDefinitionBindings.Add(RoleDefinitionAdmin);  //ich weise der Gruppe die Rechte zu

extraSite.RoleAssignments.Add(RoleAssignmentAdmin);   //extraSite ist meine extranet-Seite, auf der die neue Berechtigungsgruppe greifen soll

 

Ich bin mir relativ sicher, dass ich noch Logikfehler hinter dem ganzen habe .. wenn jmd. daraus schlau wird und mir helfen kann wäre ich sehr dankbar!

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Aug. 2009 12:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Dodo"]SPRoleAssignment RoleAssignmentAdmin = new SPRoleAssignment(SPPrincipal Besitzer); [/quote]

Diese Zeile wird nicht funktionieren, weil ein SPPrincipal erwartet wird, aber Deine Variable "Besitzer" ist ein String. Du kannst hier aber sowas verwenden:
... new SPRoleAssignment(mySite.Groups[Besitzer]); oder
... new SPRoleAssignment(mySite.AllUsers[Besitzer]);

Wenn Du die Gruppe noch nicht hast, kannst Du sie vorher mit mySite.Groups.Add anlegen.

Viele Grüße
Andi
af @ evocom de
Blog