Frage

Ich muss nicht landwirtschaftliche Administratoren ermöglichen, mithilfe einer sehr spezifischen Site -Definition Site -Sammlungen erstellen zu können. Diese Personen haben keinen Zugang zu zentralem Administrator und erfordern daher eine benutzerdefinierte Lösung, um die Schaffung dieser zu ermöglichen. Ich habe mehrere Lösungen ausprobiert, wollte aber einen Konsens über einen empfohlenen Ansatz.

  1. Benutzerdefinierte Webdienst - Ich habe einen benutzerdefinierten Webdienst geschrieben, um diese Aufgabe auszuführen. Dies führte jedoch zu großen Kopfschmerzen. Obwohl der Webdienst in einem App -Pool ausführte, verwendete die gleiche Identität wie der SharePoint -App -Pool, den ich nicht zum Laufen bringen konnte. Ich hatte auch Probleme mit dem Formular Digest beim Versuch, diesen V ia einen Webdienst auszuführen.

  2. Webpart/Anwendungsseite - keine Formulare -Digest -Probleme hier, da wir uns im SharePoint -Kontext befinden. Ich habe jedoch versucht, RunWitHELEVATEDPRIVILEGEGEGE zu verwenden, aber ich erhalte dennoch einen Zugriff, der beim Aufrufen von SPWebBApplication.Site.add () verweigert wurde, obwohl alle Speiten und SPWEB PBjekte sind Innerhalb des erhöhten Codeblocks instanziiert. Ich habe die direkte Imitation auf der UI -Ebene ausprobiert und bekomme eine uneingeschränkte Annahme und sagte, dass die Identitätswechsel fehlgeschlagen sind.

  3. Anwendungsumschlüssel in STSADM - Ich habe dies noch nicht versucht, da ich mir Sorgen um die Lebensfähigkeit dieses Ansatzes mache, gibt es sicherlich einen saubereren Weg als dieser?

Einige Anleitungen dazu wären nützlich, da ich dort nicht viel herausfinden kann.

Vielen Dank

War es hilfreich?

Lösung

Das Problem ist, dass Sie RWEP nicht verwenden können, um die Site -Sammlung zu erstellen. RWEP übernimmt die Identität des App -Pools und höchstwahrscheinlich (wenn Sie Ihre Farm korrekt konfiguriert haben) dieses Konto ist nicht Mitglied der Farm Adminstrators Group - was zur Erstellung der Site -Sammlung erforderlich ist. Wenn Sie den Code im zentralen Administrator ausführen, funktioniert er jedoch, da er die Identität des CA -App -Pools nimmt, der Farm Admin ist.

Sie haben also eine Reihe von Optionen, um diese Funktion zu erstellen:

  1. Sie können Ihrem App -Poolkonto Farmadministrator gewähren und wie gewohnt vorgehen - nicht empfohlen!
  2. Erstellen Sie eine Web -App in Central Admin, um diese Websites zu erstellen - nicht empfohlen, Sie möchten CA Ihren Benutzern nicht aussetzen
  3. Erstellen Sie einen Timer -Job (als Farm -Administrator ausgeführt) und fügen Sie dann Ihre "Site -Sammelanforderung erstellen" einer Liste hinzu, die die Timer -Jobs prüft. Anschließend erstellt der Timer-Job die Site Coll und sendet schließlich, wenn er erstellt wurde, eine E-Mail an den Benutzer, der die Site Coll angefordert hat. Es wird eine leichte Verzögerung sein (je nachdem, wie oft der Timer -Job ausgeführt wird), bis der Benutzer seinen Site -Coll hat.
  4. Erstellen Sie einen Webdienst in CA, wodurch die Website kolliert wird. Rufen Sie diesen Webdienst dann von Ihrem benutzerdefinierten Code aus.

Ich habe die beiden letzten Ansätze erfolgreich verwendet.

/Ww

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