Ich versuche, den Manager des Benutzers abzurufen:SPServiceContext mit SiteSubscriptionId von {00000000-0000-0000-0000-000000000000} abrufen

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/53065

Frage

Ich versuche, den Manager eines Benutzers mit diesem Code zu erreichen:

SPSecurity.RunWithElevatedPriviliges(delegate
{
  SPSite site = new SPSite(SPContext.Current.Site.Url);
  SPServiceContext context = SPServiceContext.GetContext(site);
  UserProfileManager profileManager = new UserProfileManager(context);
  //Note that I have an SPUser object, user, previously defined.
  UserProfile userProfile = profileManager.GetUserProfile(user.ID);
  UserProfile managerProfile = userProfile.GetManager();
});

Mein Problem ist, dass ich einen Null-UserProfileManager erhalte.Ich vermute, dass es daran liegt, dass der SPServiceContext eine SiteSubcriptionId von {00000000-0000-0000-0000-000000000000} hat.

Ich debugge dies auf meinem lokalen SharePoint-Server.Ich verwende es in einer Entwicklungsumgebung unter Windows 7.Zeigt dieser Fehler ein Problem mit meiner Umgebung an?

Gibt es eine bessere Möglichkeit, den Manager eines bestimmten SPUser zu ermitteln?

BEARBEITEN:

Es scheint, dass weder auf meinem lokalen Computer noch auf meinem Testserver der Benutzerprofildienst ordnungsgemäß eingerichtet ist.Das ist wahrscheinlich der Grund, warum es nicht funktioniert.Ich werde versuchen, das zum Laufen zu bringen und sehen, ob das Problem weiterhin besteht.

War es hilfreich?

Lösung

Die leere Guid hier ist eigentlich nicht besorgniserregend.Die SiteSubscriptionId ist immer eine leere Guid, es sei denn, Sie haben in Ihrer Umgebung Mehrmandantenfähigkeit aktiviert.

Aktivieren der Multi-Tenant-Unterstützung in SharePoint 2010

Möglicherweise müssen Sie für Ihren Benutzer eine Berechtigung für die Benutzerprofildienstanwendung hinzufügen.

In Konfigurieren Sie Benutzerprofil-Synchronisierungsverbindungen Sie versuchten, das zu bekommen UserProfileManager über PowerShell und es wird eine Fehlermeldung angezeigt (NullReferenceException), löste das Problem jedoch, indem sichergestellt wurde, dass das Benutzerkonto versuchte, das abzurufen UserProfileManager hatte Berechtigungen:

1) Als Administrator mit voller Kontrolle

2) Verbindungsberechtigungen als Vollzugriff

Dann haben Sie Zugriff auf den Verbindungsmanager und können programmgesteuert auf die Verbindungen zugreifen.

Andere Tipps

Zusätzlich zum Administrator und der Erlaubnis auf der UPSA musste ich den SharePoint-Setup-Benutzer als DB_Owner auf dem profiledb hinzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top