2010-12-09 13 views
0

Ich brauche wissen, ob einige (nicht nur aktuelle) Benutzer Mitglied einer Gruppe ist.Sharepoint: Wie ermitteln, ob Benutzer Mitglied der Gruppe über API ist

Darüber hinaus muss ich wissen, ob Benutzer innerhalb der Domänengruppe platziert, die in Sharepoint-Gruppe platziert. Beispiel:

Gruppe 'GroupA' enthält Benutzer 'XXX \ Domain Users'. Ich habe Benutzer 'XXX \ someuser' von Domain XXX und muss wissen, ob dies ein Mitglied von 'GroupA' ist. In diesem Beispiel ist es wahr.

Vorerst fand ich nur einen Weg:

Impersonate wie angegebenen Benutzer und überprüfen web.SiteGroups [ 'GroupA'] ContainsCurrentUser

Aber es ist wie Hack aussehen..

Antwort

0

Sollte das gleiche wie in .NET sein:

principal.IsInRole('GROUPNAME') 

Oder Sie können versuchen zu tun folgendes:

WindowsIdentity identity = WindowsIdentity.GetCurrent(); 
WindowsPrincipal principal = new WindowsPrincipal(identity); 
if(principal.IsInRole(@"MYCOMPANY\AllFTE")){ 
    // perform operation allowed for fulltime employees 
} 

Vielleicht Post hilft Ihnen aus: http://mnigbor.blogspot.com/2010/05/using-windowsidentityimpersonate-in.html

+0

SPUser nicht habe diese Methode (oder ähnliches). Was ist die Art von Prinzipal? –

+0

Der Typ wäre IPrincipal. Haben Sie die Property Groups in der SPUser-Klasse gesehen? Vielleicht hilft dir das? – Christian

+0

Eigenschaft user.Groups enthält nur Sharepoint-Gruppen und enthält keine speziellen Gruppen von Windows-Domänen wie 'XXX \ Domain Users'. :( –

Verwandte Themen