SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure
SharePoint Security - Teil 3: Benutzer und Gruppen

Blogs

Fabian´s Blog [SharePoint MVP]

Syndication

Weitere Artikel dieser Serie:

Dieser Teil der Artikelserien beschäftigt sich mit der Repräsentation von externen Benutzern und Gruppen innerhalb der SharePoint-Umgebung. SharePoint stellt keine eigenständige Benutzerdatenbank bereit. Vielmehr liefern die Windows SharePoint Services 3.0 die Möglichkeit, Benutzer und Gruppen von externen Verzeichnisdiensten oder Benutzerdatenbanken innerhalb einer SharePoint-Websitesammlung zu berechtigen. Auch wenn eine WSS Site keine „echte“ Benutzerdatenbank bereitstellt, speichert SharePoint dennoch Informationen eines externen Benutzers oder einer Gruppe. Alle Informationen zu einem Benutzer werden in der sogenannten „Benutzerinformationsliste“ abgelegt. Diese versteckte Liste wird auf der Ebene einer Websitesammlung bereitgestellt. Ein sehr einfacher Weg auf die Information der Benutzerinformationsliste zuzugreifen ist Access:

Nachdem Access sich mit der Websitesammlung verbunden hat, gibt das Office-Werkzeug interessante Informationen zu den von der Benutzerinformationsliste gespeicherten Daten preis. Neben dem Login-Namen werden bei der ersten Registrierung eines externen Benutzerkontos noch weitere Daten, wie zum Beispiel der Anzeigename oder die E-Mail-Adresse eingesammelt. Zudem wird schnell ersichtlich, dass neben Benutzerkonten auch Gruppen (SharePoint, Active Directory oder Rollen eines Membership Providers) an dieser Stelle abgespeichert werden.

Die Benutzerinformationsliste stellt technisch betrachtet eine Sicht auf die UserInfo-Datenbanktabelle dar. Diese Tabelle speichert auf Ebene der Inhaltsdatenbank einer SharePoint-Webanwendung alle Informationen zu externen Benutzern und Gruppen. Ein genauer Blick auf diese Tabelle liefert weitere Details über das Innenleben der Benutzerinformationsliste.

Weitere Informationen zur UserInfo-Tabelle beschreibt dieser Blogartikel aus dem Jahr 2007. An dieser Stelle sei erwähnt, dass Änderungen auf Datenbankebene den Verlust des Supports von Microsoft bedeutet J

Das SharePoint-Objektmodell repräsentiert einen externen Benutzer über die SPUser-Klasse. Dieses Objekt speichert sämtliche Informationen eines Benutzerkontos. Interessanter Weise stellt die Klassen neben Benutzerkonten auch Informationen von Active Directory-Gruppen oder Rollen eines Membership Providers bereit.

   1: SPUser currentUser = SPContext.Current.Web.CurrentUser;
   2:  
   3: string name = currentUser.Name;
   4: string login = currentUser.LoginName;
   5: bool isSiteAdmin = currentUser.IsSiteAdmin;
   6: bool isDomainGroup = currentUser.IsDomainGroup;

Wie kann innerhalb einer SharePoint Site nun auf Informationen der Benutzerinformationsliste zugegriffen werden. Die Windows SharePoint Services 3.0 stellen für diese Aufgabe gleich drei Collections bereit:

   1: SPWeb currentWeb = SPContext.Current.Web;
   2:  
   3: // Alle explizit berechtigten Benutzerkonten
   4: SPUserCollection users = currentWeb.Users;
   5:  
   6: // Alle explizit und über Gruppenzugehörigkeiten implizit berechtigten Benutzer 
   7: SPUserCollection allUsers = currentWeb.AllUsers;
   8:  
   9: // Benutzer aller Websites einer Websitesammlung
  10: SPUserCollection siteUsers = currentWeb.SiteUsers;
  11:  
  12: // Zugriff auf die AllUsers Collection
  13: foreach (SPUser user in allUsers)
  14: {
  15:     // Prüfung, ob das Benutzerkonto eine Domain-Gruppe ist
  16:     if (!user.IsDomainGroup)
  17:     {
  18:         string userLoginName = user.LoginName;
  19:     }
  20: }

Die kleinste Einheit von Benutzerobjekten wird durch die Users-Collection verwaltet. Diese Liste enthält alle Benutzerkonten und Gruppen, die eine explizite Berechtigung innerhalb der Website besitzen, also direkt und nicht über den Umweg einer SharePoint-Gruppe berechtigt wurden. Die Collection AllUsers repräsentiert zusätzlich alle Benutzer, die Mitglied einer SharePoint-Gruppe sind oder sich durch die Mitgliedschaft einer berechtigten Active Directory-Gruppe einmal auf der Website angemeldet haben. Im zweitgenannten Fall wird der Eintrag in der Benutzerinformationsliste erst dann erzeugt, wenn der Benutzer sich das erste Mal an der Website anmeldet. Besonders für die Entwicklung von SharePoint-Anwendungen sollte dieses Verhalten berücksichtigt werden. Eine dritte Benutzerliste wird durch die SiteUsers-Collection bereitgestellt, die eine Zusammenstellung aller Benutzerobjekte aller Websites einer Websitesammlung enthält.

Im nächsten Artikel werde ich beschreiben, wie Benutzer oder Gruppen innerhalb einer SharePoint Site berechtigt werden können.


Bereitgestellt 26 Mrz 2009 18:35 von Fabian Moritz
Gespeichert unter: ,

Kommentare

Enrik Berisha geschrieben re: SharePoint Security - Teil 3: Benutzer und Gruppen
on 6 Apr 2009 12:04

Hallo, ich muss eine Liste mit Benutzern erstellen welche ich aus dem AD auslesen soll. Also eine Liste mit den Benutzern und einzelnen Infos z.B. Telefonnummer etc.

wie kann ich das amchen?

TrackBack geschrieben SharePoint Security - Teil 4: Berechtigungen und Vererbung
on 16 Apr 2009 9:08

SharePoint Security - Teil 4: Berechtigungen und Vererbung