Konfigurieren und Bereitstellen von Webparts (SharePoint Server 2010)

 

Gilt für: SharePoint Foundation 2010, SharePoint Server 2010

Letztes Änderungsdatum des Themas: 2016-11-30

Dieser Artikel enthält Informationen und Vorgehensweisen zum Konfigurieren und Bereitstellen sicherer Webparts für das Verzeichnis Bin oder den globalen Assemblycache (GAC) von .NET Framework auf dem Server.

Inhalt dieses Artikels:

In Microsoft SharePoint Server sind eine Reihe von Webparts enthalten, die Benutzer nach der Installation des Produkts Seiten hinzufügen können. Falls eine Organisation benutzerdefinierte Webparts benötigt, kann ein Entwickler benutzerdefinierte ASP.NET-Webparts erstellen und Sie auffordern, diese für eine Bereitstellung von SharePoint Server zu installieren. Hierfür muss in der Regel der Code getestet und genehmigt werden, bevor das Webpart in einer voll vertrauenswürdigen Umgebung bereitgestellt werden kann. Ein Entwickler, der Visual Studio 2010 verwendet, kann ein Webpart in SharePoint Server bereitstellen, indem er mit der rechten Maustaste auf das Projekt klickt und Bereitstellen auswählt. Das Ziel für das Webpart wird durch die Vertrauensebene bestimmt, die mit dem SharePoint-Server eingerichtet wurde, als der Entwickler das Projekt in Visual Studio 2010 erstellte.

Mit Microsoft SharePoint Server 2010 können Sie eine Sandkastenumgebung konfigurieren, in der Websitesammlungsadministratoren, Websiteadministratoren oder Information Worker teilweise vertrauenswürdige Webparts und Lösungen in einem Sandkastenarbeitsprozess bereitstellen und ausführen können. Webparts und Lösungen, die in einer Sandkastenumgebung ausgeführt werden, verfügen über eingeschränkte Berechtigungen für den Zugriff auf das Serverbetriebssystem und die Serverhardware und sind von anderen Teilen der Webanwendung isoliert.

Weitere Informationen zur Verwendung von Sandkastenlösungen finden Sie unter Verwalten von Sandkastenlösungen (SharePoint Server 2010).

SharePoint Server verwendet einige der von Microsoft .NET Framework bereitgestellten Konfigurationsverwaltungseinstellungen. Einige dieser Einstellungen werden in XML-Konfigurationsdateien gespeichert und bieten eine Vielzahl von Einstellungen, mit denen Serveradministratoren die Webanwendung und die zugehörige Umgebung verwalten können. Weitere Informationen zu ASP.NET-Konfigurationsdateien finden Sie im Abschnitt Erläuterung zu "Machine.Config" und "Web.Config" (https://go.microsoft.com/fwlink/?linkid=103450&clcid=0x407) unter "Schützen der ASP.NET-Anwendung und -Webdienste" in der MSDN Library Online.

Konfigurationsoptionen

Systemadministratoren können ASP.NET-Webparts für eine Bereitstellung von SharePoint Server in einem der folgenden beiden Speicherorte bereitstellen:

  • Verzeichnis "Bin"   Gespeichert im Ordner Bin unter dem Stammverzeichnis Ihrer Webanwendung.

  • Globaler Assemblycache (GAC)   Alle standardmäßigen Webparts werden automatisch im globalen Assemblycache, in dem sich die Common Language Runtime von .NET Framework befindet, im Verzeichnis windir%\assembly installiert. Im globalen Assemblycache gespeicherte Webparts können in Anwendungen gemeinsam verwendet werden.

In der folgenden Tabelle werden die Vor- und Nachteile der verschiedenen Speicherorte beschrieben.

Bereitstellungsspeicherort Vorteile Nachteile

Verzeichnis Bin

Ein teilweise vertrauenswürdiger Speicherort. Standardmäßig hat Code, der in diesem Verzeichnis ausgeführt wird, niedrige Berechtigungen für die Codezugriffssicherheit. Falls das Webpart anwendungsübergreifenden Zugriff oder mehr Zugriffsrechte als durch die Standardberechtigungen zugelassen benötigt, muss der Administrator explizit die einem Webpart erteilte Berechtigungsstufe anheben, damit es ordnungsgemäß ausgeführt wird. Administratoren ziehen es möglicherweise vor, dass Assemblys im Verzeichnis Bin mit bekannten erforderlichen Mindestberechtigungen für die Codezugriffssicherheit ausgeführt werden.

Das Verzeichnis Bin ist spezifisch für eine Webanwendung. Deshalb können Sie diese Methode verwenden, wenn Sie Code für eine einzelne Webanwendung isolieren möchten.

Sie müssen die Assembly im Verzeichnis Bin auf jedem Server bereitstellen, damit Sie das Webpart überall ausführen können.

GAC

Ein globaler Speicherort, in dem Sie signierte Assemblys bereitstellen können, die standardmäßig als voll vertrauenswürdig ausgeführt werden können. Die Assemblys werden global installiert und können deshalb in jeder Webanwendung verwendet werden.

Im Allgemeinen gibt es bei im GAC installiertem Code keine Einschränkungen bezüglich der Codezugriffssicherheit. Deshalb verlieren Sie den Vorteil der Sicherheit durch die umfassende Verteidigungsstrategie.

Darüber hinaus kann sich das Bereitstellen Ihrer Programmdatenbankdateien (PDB) für Assemblys im GAC als schwierig erweisen.

Festlegen von Sicherheitsattributen

Für im Verzeichnis Bin gespeicherte ASP.NET-Webparts gelten zusätzliche Sicherheitsattribute. Sie können je nach geplanter Verwendung diese Attribute für Ihr Webpart festlegen.

Das Verzeichnis Bin ist ein teilweise vertrauenswürdiger Speicherort. Deshalb werden Ihrem Webpart nicht automatisch voll vertrauenswürdige Codeberechtigungen erteilt, wenn es ausgeführt wird. Da der Code, der in Ihrem Webpart aufgerufen wird, nur als teilweise vertrauenswürdig ausgewiesen wird, muss der Webpartentwickler das AllowPartiallyTrustedCallers-Attribut in Ihrem ASP.NET-Webpart festlegen.

Durch die Markierung einer Komponente als "sicher" mithilfe des AllowPartiallyTrustedCallers-Attributs wird die Verantwortung für eine sichere Implementierung an das Entwicklungsteam übertragen.

Standardmäßig weist das Verzeichnis Bin sehr niedrige Berechtigungen für die Codezugriffssicherheit auf. Sie sollten die Webparts sorgfältig testen, um zu bestimmen, welche Berechtigungsstufe zugewiesen werden sollte, und um sicherzustellen, dass das Webpart kein Sicherheitsrisiko für Ihre Umgebung darstellt.

Es gibt zwei Möglichkeiten, um Berechtigungen zu erhöhen:

  • (Empfohlen) Erstellen Sie eine Vertrauensrichtliniendatei, und verweisen Sie in der neuen Datei auf die Datei Web.config. Diese Option ist komplexer, jedoch ermöglicht sie die Festlegung präziser Berechtigungen für Ihre Webparts. Weitere Informationen zu Vertrauensrichtliniendateien finden Sie unter Microsoft Windows SharePoint Services und Codezugriffssicherheit (https://go.microsoft.com/fwlink/?linkid=103436&clcid=0x407) in der MSDN Library Online.

  • Heben Sie die allgemeine Vertrauensebene des Verzeichnisses Bin an. Suchen Sie in der Datei Web.config im Stammverzeichnis der Webanwendung das Element trust. Der Standardwert für das level-Attribut des Elements trust lautet WSS_Minimal. Sie können diese Ebene in WSS_Medium ändern. Diese Methode ist zwar einfacher, aber neue und möglicherweise nicht benötigte Berechtigungen werden willkürlich erteilt. Außerdem ist diese Methode nicht so sicher wie das Erstellen einer Vertrauensrichtliniendatei.

Liste der sicheren Steuerelemente

Eine grundlegende Annahme für SharePoint-Produkte ist, dass nicht vertrauenswürdige Benutzer ASPX-Seiten im System, auf dem SharePoint Server ausgeführt wird, hochladen und erstellen können. Diese Benutzer sollten daran gehindert werden, serverseitigen Code in ASPX-Seiten hinzuzufügen. Es sollte jedoch eine Liste der genehmigten Steuerelemente geben, die diese nicht vertrauenswürdigen Benutzer verwenden können. In SharePoint Server übernimmt diese Funktion die Liste der sicheren Steuerelemente.

Die Liste der sicheren Steuerelemente enthält die Namen der Steuerelemente und Webparts speziell für Ihre SharePoint-Website, die Serveradministratoren für den Aufruf auf beliebigen ASPX-Seiten innerhalb einer Website als sicher festlegen können. Diese Liste ist Teil der Datei Web.config im Stammverzeichnis Ihrer Webanwendung.

Bereitstellen und Konfigurieren eines Webparts

Die zum Bereitstellen eines neuen Webparts verwendete Methode hängt vom fertigen Paket ab, das der Entwickler verfügbar macht. Falls Ihnen der Entwickler das Webpart als einzelne DLL-Datei liefert, können Sie die DLL manuell bereitstellen, indem Sie sie in den Ordner Bin Ihrer Webanwendung kopieren. Falls Ihnen der Entwickler eine CAB-Datei mit dem Webpart liefert, können Sie Windows PowerShell zum Bereitstellen des Webparts verwenden.

So können Sie ein Webpart manuell bereitstellen und konfigurieren

  1. Stellen Sie sicher, dass Sie über die folgenden Administratorrechte verfügen:

    • Sie müssen Mitglied der lokalen Administratorgruppe auf dem Server sein, auf dem SharePoint Server gehostet wird.
  2. Kopieren Sie die Assembly <Name des Webparts>.dll im Verzeichnis Bin des Projekts in das Verzeichnis Bin des Stammverzeichnisses der Webanwendung. Beispielsweise C:\inetpub\wwwroot\wss\VirtualDirectories\80\.

  3. Suchen Sie die Datei Web.config im Stammverzeichnis der Anwendung, und öffnen Sie sie, um sie zu bearbeiten.

  4. Fügen Sie der Datei Web.config den folgenden SafeControl-Eintrag für die benutzerdefinierte Assembly hinzu:

    <SafeControl Assembly="<YourWebPartName>, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="<YourWebPartNamespace>" TypeName="*" Safe="True" AllowRemoteDesigner="True"/>
    

    Dabei gilt:

    1. <YourWebPartName> ist der Name des bereitzustellenden Webparts.

    2. <YourWebPartNamespace> ist der Namespace, der dem Webpart zugeordnet ist.

Eine Alternative zum manuellen Installieren eines Webparts im Ordner Bin oder zum manuellen Ändern der Datei Web.config ist die Verwendung von Windows PowerShell zum Installieren des Webpartpakets. Damit dieses Verfahren erfolgreich ausgeführt wird, muss ein Entwickler oder Systemadministrator für das Webpart ein CAB-Lösungspaket erstellen. Weitere Informationen zum Erstellen eines CAB-Pakets finden Sie online in der Dokumentation Lösungen und Webpartpakete (https://go.microsoft.com/fwlink/?linkid=95855&clcid=0x407) in der MSDN Library. Führen Sie nach dem Erstellen einer CAB-Datei die folgenden Schritte aus, um das Webpart bereitzustellen.

So stellen Sie das Webpart mithilfe von Windows PowerShell bereit

  1. Stellen Sie sicher, dass die folgenden Mindestanforderungen erfüllt sind: Weitere Informationen finden Sie unter Add-SPShellAdmin.

  2. Klicken Sie im Startmenü auf Alle Programme.

  3. Klicken Sie auf Microsoft SharePoint 2010-Produkte.

  4. Klicken Sie auf SharePoint 2010-Verwaltungsshell.

  5. Geben Sie an der Windows PowerShell-Eingabeaufforderung (PS C:\>) den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE:

    Install-SPWebPartPack -LiteralPath "<PathToCabFile>" -Name "<WebPartName>"
    

    Dabei gilt:

    • <PathToCabFile> ist der vollständige Pfad zur bereitzustellenden CAB-Datei.

    • <WebPartName> ist der Name des bereitzustellenden Webparts.

Hinweis

Das vorherige Verfahren zeigt eine gängige Methode zum Bereitstellen eines Webparts mithilfe von Install-SPWebPartPack auf. Sie können zusätzliche Parameter angeben, um die Art und Weise, wie das Webpart bereitgestellt wird, zu ändern. Weitere Informationen finden Sie unter Install-SPWebPartPack.

Hinweis

Es wird empfohlen, Windows PowerShell zum Ausführen von administrativen Befehlszeilenaufgaben zu verwenden. Das Befehlszeilentool Stsadm ist veraltet, aber weiterhin vorhanden, um die Kompatibilität mit früheren Produktversionen zu gewährleisten.

Hinzufügen einer Komponente zum Webpartkatalog

Jedes Webpart muss über eine WEBPART-Datei verfügen. Dabei handelt es sich um eine XML-Datei, in der das Webpart beschrieben wird. Die WEBPART-Datei bewirkt außerdem, dass das Webpart im Webpartkatalog angezeigt wird. Im Folgenden wird beschrieben, wie Sie nach dem Bereitstellen des Webparts am einfachsten eine WEBPART-Datei erstellen und diese in der Liste der sicheren Steuerelemente registrieren.

So fügen Sie dem Webpartkatalog eine Komponente hinzu

  1. Stellen Sie sicher, dass Sie über die folgenden Administratorrechte verfügen:

    • Sie müssen Mitglied der Gruppe Farmadministratoren sein.
  2. Wenn Sie eine WEBPART-Datei erstellen möchten, navigieren Sie zu http://<MeinServer>/_layouts/newdwp.aspx, wobei <MeinServer> der Name des Servers ist, auf dem die SharePoint-Website bereitgestellt wurde.

  3. Aktivieren Sie das Kontrollkästchen neben <Namespace des Webparts>.<Name des Webparts>.

  4. Klicken Sie auf Katalog auffüllen, um dem Teamwebsite-Katalog das Webpart Name des Webparts hinzuzufügen.

  5. Klicken Sie im Webpartkatalog auf Bearbeiten, um das Webpart zu bearbeiten, und klicken Sie anschließend auf Importieren.

    Sie werden aufgefordert, einen Speicherort für die WEBPART-Datei anzugeben. Sie können auch ASP.NET-Webparts exportieren und in SharePoint-Websites importieren.