Frage

Wie rufen Sie programmatisch den Namen eines Shared-Services-Anbieter, der mit einer bestimmten Sharepoint-Web-Anwendung verknüpft ist?

Ich habe eine benutzerdefinierte Lösung, die benötigt:

  1. Aufzählen alle Web-Anwendungen, die es im Einsatz ist auf
  2. Abbildung aus dem Shared Services Provider, die jede der Web-Anwendungen ist im Zusammenhang mit
  3. Zugriff auf eine Business Data Catalog auf dem SSP installiert einige Daten abrufen
  4. Aufzählen durch alle Websitesammlungen in diesen Web-Anwendungen
  5. verschiedene Aufgaben innerhalb der Websitesammlungen Führen Sie die Daten nach

Ich habe Nummern 1, 3, 4 und 5 herausgefunden, aber 2 ist etwas mühsam. Ich möchte hartzucodieren den SSP-Name überall und nicht erfordern den Farmadministrator vermeiden, um manuell eine Konfigurationsdatei zu bearbeiten. Alle Informationen, die ich in der Sharepoint-Konfigurationsdatenbank benötigen, ich muß nur wissen, wie es über das Objektmodell zugreifen zu können.

War es hilfreich?

Lösung

Leider gibt es keinen unterstützten Weg, ich weiß, dass dies getan werden kann. Die entsprechende Klasse ist SharedResourceProvider im Microsoft.Office.Server.Administration Namespace, in dem Microsoft.Office.Server DLL. Es markiert interne so vorge Reflexion:

SharedResourceProvider sharedResourceProvider = ServerContext.GetContext(SPContext.Current.Site).SharedResourceProvider;
string sspName = sharedResourceProvider.Name;

Post-Reflexion:

ServerContext sc = ServerContext.GetContext(SPContext.Current.Site);
PropertyInfo srpProp = sc.GetType().GetProperty(
    "SharedResourceProvider", BindingFlags.NonPublic | BindingFlags.Instance);
object srp = srpProp.GetValue(sc, null);
PropertyInfo srpNameProp = srp.GetType().GetProperty(
    "Name", BindingFlags.Public | BindingFlags.Instance);
string sspName = (string)srpNameProp.GetValue(srp, null);

Eine Alternative wäre eine SQL-Abfrage über die Konfigurationsdatenbank zu schreiben, die nicht empfohlen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top