Listenberechtigung eines Users mit Client Object Model abfragen

Oftmals ist es notwendig, zu überprüfen ob ein Benutzer in SharePoint berechtigt ist, einen Listeneintrag zu erstellen oder ein Dokument hochzuladen. Die Aufgabenstellung kann auch in Klient-Anwendungen vorkommen. Das Client Object Model von SharePoint 2010 bietet auch hierfür Funktionen an.

EffectiveBasePermission

Eine Klient-Listen Klasse bietet mit “EffectiveBasePermission” den Zugriff auf die Persmissions des Benutzers.

liste.EffectiveBasePermissions.Has(PermissionKind.AddListItems)

Die Methode “Has” überprüft ob eine bestimmte Permission vorliegt. Das enum “PermissionKind” bietet alle in SharePoint definierten Persmissions. Die genaue Bedeutung kann im MSDN nachgelesen werden.

Der Sourcecode prüft für den aktuellen User, ob die Berechtigung “AddListItems” gesetzt ist:

   1: public static bool SchreibRechtAufListe(string listenName)
   2: {
   3:         ClientContext ctx = new ClientContext(url);
   4:         ctx.Credentials = System.Net.CredentialCache.DefaultCredentials;
   5:         List liste = ctx.Web.Lists.GetByTitle(listenName);
   6:         ctx.Load(liste, L => L.EffectiveBasePermissions);
   7:         ctx.ExecuteQuery();
   8:         return liste.EffectiveBasePermissions.Has(PermissionKind.AddListItems);
   9: }

Kommentar schreiben