Überlegungen zu Sandkastenlösungen
Sandkastenlösungen sind eine Funktion in Microsoft SharePoint 2010, die es Websiteauflistungsbenutzern ermöglicht, eigene benutzerdefinierte Codeprojektmappen hochzuladen.Bei einer gängigen Sandkastenlösung laden Benutzer eigene Webparts hoch.
Eine SharePoint-Sandkastenanwendung wird in einem sicheren überwachten Prozess ausgeführt, der Zugriff auf einen beschränkten Teil der Webfarm hat.Microsoft SharePoint 2010 aktiviert Sandkastenlösungen mithilfe einer Kombination aus Funktionen, Lösungskatalogen, Lösungsüberwachung und einem Validierungsframework.
Angeben der Projektvertrauensebene
Visual Studio unterstützt Sandkastenlösungen durch eine boolesche Projekteigenschaft mit dem Namen Sandboxed Solution.Diese Eigenschaft kann im Projekt jederzeit festgelegt oder dann angegeben werden, wenn Sie das Projekt im Assistenten zum Anpassen von SharePoint erstellen.
Hinweis |
---|
Wenn die Eigenschaft Sandboxed Solution eines Projekts nach seiner Erstellung geändert wird, kann dies Validierungsfehler verursachen. |
Die Projektmappe wird als eine Farm Lösung, wenn die - Eigenschaft auf Sandboxed Solutionfalse festgelegt wird, oder Sie Als Farmlösung bereitstellen die Option auswählen.Allerdings wird die Projektmappe unterschiedlich zu einer Farmlösung behandelt, wenn die - Eigenschaft auf Sandboxed Solutiontrue festgelegt wird, oder Sie die Option Als Sandkastenlösung bereitstellen im Assistenten auswählen.
SharePoint-Websitehierarchie
Die Funktionsweise von Sandkastenlösungen wird verständlicher mit dem Wissen, dass SharePoint-Websitebereiche hierarchisch sind.Das oberste Element wird als Webfarm bezeichnet, und andere Elemente sind diesem Element untergeordnet:
Webfarm
Webanwendung A
Websiteauflistung A1
Website A1a
Webanwendung B
Websiteauflistung B1
Website B1a
Website B1b
Websiteauflistung B2
Website B2a
Webfarmen können eine oder mehrere Webanwendungen enthalten, die wiederum eine oder mehrere Websiteauflistungen enthalten können, die über Unterwebsites verfügen können, usw.Änderungen an einer Websiteauflistung wirken sich nicht auf andere Websiteauflistungen aus.Änderungen auf Webfarmebene wirken sich jedoch auf alle Websiteauflistungen der Webfarm aus.
Mit Windows SharePoint Services 3.0 (WSS) können Sie Lösungen nur auf Farmebene bereitstellen, aber mit Microsoft SharePoint Foundation 2010 ist die Bereitstellung entweder auf Farmebene (Farmlösung) oder auf Websiteauflistungsebene (Sandkastenlösung) möglich.
Gründe für die Verwendung von Sandkastenlösungen
In WSS 3.0 konnten Lösungen nur auf Farmebene bereitgestellt werden.Das bedeutet, dass potenziell schädliche oder destabilisierende Lösungen bereitgestellt werden konnten, die sich auf die gesamte Webfarm sowie auf alle weiteren Websiteauflistungen und Anwendungen auswirkten, die darunter ausgeführt wurden.Bei Sandkastenlösungen können Sie Lösungen jedoch in einem Unterbereich der Farm, einer spezifischen Websiteauflistung, bereitstellen.Um zusätzlichen Schutz zu bieten, wird die Assembly der Lösung nicht im IIS-Hauptprozess (w3wp.exe) geladen.Stattdessen wird sie in einem separaten Prozess geladen (SPUCWorkerProcess.exe).Dieser Prozess wird überwacht und implementiert Kontingente und Einschränkungen, um die Farm vor Sandkastenlösungen zu schützen, die schädliche Aktivitäten ausführen, z. B. geschlossene Schleifen, die CPU-Zyklen verbrauchen.
Lösungskatalog für Websiteauflistungen
Windows SharePoint Services 2010 verfügt über eine Funktion, die bekannt als "Siteauflistungsprojektmappenkatalog." Sie können auf diese Funktion zugreifen von der SharePoint 2010-Zentraladministrations-Seite oder indem Sie das Menü öffnen Websiteaktionen auswählen, Standorteinstellungen, und dann den Projektmappen Link mit Galerien in der SharePoint-Website auswählen.Lösungskataloge sind Repositorys von Lösungen, die es Websiteauflistungsadministratoren ermöglichen, Lösungen in ihren Websiteauflistungen zu verwalten.
Der Lösungskatalog ist eine im Stammweb der SharePoint-Website gespeicherte Dokumentbibliothek.Der Lösungskatalog ersetzt Websitevorlagen und unterstützt Lösungspakete.Eine hochgeladene SharePoint-Lösungspaketdatei (.wsp) wird als Sandkastenlösung verarbeitet.
Einschränkungen von Sandkastenlösungen
Wenn eine Sandkastenlösung bereitgestellt wird, ist das verfügbare Array von SharePoint-Funktionen beschränkt, um potenzielle Sicherheitslücken zu verringern.Einige dieser Beschränkungen schließen Folgendes ein:
Für Sandkastenlösungen steht eine eingeschränkte Teilmenge von zur Bereitstellung geeigneter Lösungselemente zur Verfügung.Potenziell anfällige SharePoint-Projektvorlagen, z. B. Websitedefinitionen und Workflows, sind nicht verfügbar.
SharePoint-führt Sandkastenlösungscode in einem Prozess (SPUCWorkerProcess.exe) aus, der vom Hauptprozess des IIS-Anwendungspools (w3wp.exe) getrennt ist.
Zugeordnete Ordner können dem Projekt nicht hinzugefügt werden.
Typen in der Microsoft SharePoint Server 2010-Assembly Microsoft.Office.Server können nicht in Sandkastenlösungen verwendet werden.Darüber hinaus können nur Typen in der Microsoft SharePoint Foundation 2010-Assembly Microsoft.SharePoint in Sandkastenlösungen verwendet werden.
Beachten Sie, dass das Festlegen einer SharePoint-Lösung als Sandkastenlösung keine Auswirkungen auf SharePoint-Server hat. Hierdurch wird lediglich bestimmt, wie das SharePoint-Projekt von Visual Studio in SharePoint bereitgestellt wird und an welche Assemblys es gebunden wird.Die generierte WSP-Datei wird dadurch nicht beeinflusst. Sie enthält keine Daten, die mit der Eigenschaft Sandboxed Solution zusammenhängen.
Funktionen und Elemente in Sandkastenlösungen
Sandkastenlösungen unterstützen die folgenden Funktionen und Elemente:
Inhaltstypen/Felder
Benutzerdefinierte Aktionen
Deklarative Workflows
Ereignisempfänger
Ausgehende Funktionsaufrufe
Listendefinitionen
Listeninstanzen
Module/Dateien
Navigation
Onet.xml
SPItemEventReceiver
SPListEventReceiver
SPWebEventReceiver
Unterstützung für alle von System.Web.UI.WebControls.WebParts.WebPart abgeleiteten Webparts
Webparts
WebTemplate-Funktionselemente (anstelle von Webtemp.xml)
Visuelle Webparts
Sandkastenlösungen bieten keine Unterstützung für die folgenden Funktionen und Elemente:
Anwendungsseiten
Benutzerdefinierte Aktionsgruppe
Funktionen mit dem Gültigkeitsbereich Farm
HideCustomAction-Element
Funktionen mit dem Gültigkeitsbereich Webanwendung
Workflows mit Code
Siehe auch
Konzepte
Unterschiede zwischen Sandkasten- und Farmlösungen