Überwachung auf Elementebene mit SharePoint Server 2007

Veröffentlicht: 21. Mai 2007

Von Ted Pattison, Joanna Bichsel

Auf dieser Seite

Überwachung mit SharePoint Server 2007 Überwachung mit SharePoint Server 2007
Integrierte Überwachungsunterstützung in Windows SharePoint Services und Office SharePoint Server 2007 Integrierte Überwachungsunterstützung in Windows SharePoint Services und Office SharePoint Server 2007
Überwachung auf Elementebene: Eine benutzerdefinierte Überwachungslösung Überwachung auf Elementebene: Eine benutzerdefinierte Überwachungslösung
Anzeigen von Überwachungsprotokolleinträgen Anzeigen von Überwachungsprotokolleinträgen
Überwachung auf Elementebene Überwachung auf Elementebene
Schreiben benutzerdefinierter Überwachungseinträge Schreiben benutzerdefinierter Überwachungseinträge
Effiziente Überwachungsunterstützung in Office SharePoint Server 2007 Effiziente Überwachungsunterstützung in Office SharePoint Server 2007
Unterstützung für Überwachungsberichte in Office SharePoint Server 2007 Unterstützung für Überwachungsberichte in Office SharePoint Server 2007
Generieren einer Excel-Arbeitsmappe mit Überwachungsprotokollinformationen Generieren einer Excel-Arbeitsmappe mit Überwachungsprotokollinformationen
Serverseitiges Arbeitsmappenrendering mit Excel Services Serverseitiges Arbeitsmappenrendering mit Excel Services

     Verpacken der Elementüberwachungslösung für die Bereitstellung
    Verpacken der Elementüberwachungslösung für die Bereitstellung
Schlussbemerkung Schlussbemerkung
Weitere Ressourcen Weitere Ressourcen

Zusammenfassung: Erfahren Sie etwas über die integrierte Überwachungsunterstützung in Microsoft Windows SharePoint Services 3.0 und Microsoft Office SharePoint Server 2007 und darüber, wie Sie diese Unterstützung mit der benutzerdefinierten Lösung zur Überwachung auf Elementebene erweitern können.

Laden Sie MOSSSampleItemLevelAuditing.exe herunter

Überwachung mit SharePoint Server 2007

In vielen Unternehmen und Regierungsbehörden gelten Richtlinien und Vorschriften, die eine sorgfältige Überwachung erfordern, wo und wie Benutzer auf wichtige Datensätze und Dokumente zugreifen. Es müssen Überwachungsprotokolle geführt werden, in denen anhand von Ereignissen beispielsweise erfasst wird, welche Benutzer wann Datensätze und Dokumente abgerufen und aktualisiert haben.

Bislang bot Microsoft Windows SharePoint Services 2.0 keine umfassende Überwachungsunterstützung. Zum Beispiel konnten keine Komponenten genutzt werden, mit denen der Zugriff auf Seiten oder auf Elemente in Listen überwacht wurde. Ereignishandler in Dokumentbibliotheken von Windows SharePoint Services 2.0 wurden nur aktiv, wenn ein Dokument in einer Bibliothek aktualisiert wurde. Deshalb boten Ereignishandler in Dokumentbibliotheken von Windows SharePoint Services 2.0 keine Unterstützung für Überwachungsereignisse, die beim Anzeigen von Dokumenten durch Benutzer auftraten.

Als Reaktion auf Anfragen von Benutzern stellt die aktuelle Version der Microsoft SharePoint-Produkte und -Technologien jetzt viele Verbesserungen für die Überwachungsunterstützung bereit. Sie alle sind in 2007 Microsoft Office System enthalten. Sowohl Microsoft Windows SharePoint Services 3.0 als auch Microsoft Office SharePoint Server 2007 bieten Unterstützung für die Überwachung des Benutzerzugriffs auf Seiten, Inhalte und Dokumente und ermöglichen die Erfassung von Ereignissen wie Anzeigen und Aktualisieren.

Integrierte Überwachungsunterstützung in Windows SharePoint Services und Office SharePoint Server 2007

Windows SharePoint Services 3.0 bietet jetzt eine integrierte Überwachungsprotokollierung, die Sie für eine ganze Websitesammlung aktivieren und konfigurieren können. Wenn Sie die Überwachung aktivieren, schreibt Windows SharePoint Services Überwachungsereigniseinträge in eine interne Überwachungsprotokolltabelle, die innerhalb der Inhaltsdatenbank gespeichert wird. Die Überwachungsereigniseinträge für eine Websitesammlung werden mit allen anderen Windows SharePoint Services-Inhalten wie Listenelementen, Dokumenten und Webpartanpassungen gespeichert. Wenn Sie eine Sicherungskopie einer Websitesammlung erstellen, werden auch sämtliche Informationen im Überwachungsprotokoll gesichert.

Obgleich Windows SharePoint Services die grundlegenden Überwachungsmechanismen bereitstellt, bietet es Benutzern keine integrierte Unterstützung für das Aktivieren der Überwachung. Weil Windows SharePoint Services keine Funktionen für das Anzeigen von Einträgen im Überwachungsprotokoll bietet, muss ein Entwickler Code schreiben, um die Überwachungsprotokollierung in Windows SharePoint Services zu aktivieren. Entwickler müssen außerdem Code und eine Benutzeroberfläche bereitstellen, mit denen Überwachungsprotokolleinträge gelesen und für die Benutzer der Website angezeigt werden können. Der in diesem Artikel enthaltene Beispielcode zeigt, wie diese Art einer benutzerdefinierten Überwachungslösung erstellt werden kann.

Obgleich Windows SharePoint Services die grundlegenden Überwachungsmechanismen bereitstellt, steigert Office SharePoint Server 2007 deren Leistungsfähigkeit durch Bereitstellung einer administrativen Benutzeroberfläche, die das Überwachen einer ganzen Websitesammlung ermöglicht. Office SharePoint Server 2007 geht sogar noch weiter und ermöglicht es, eine Überwachung auf der Ebene von Listen und Dokumentbibliotheken durchzuführen und festzulegen, welche Arten von Ereignissen im Überwachungsprotokoll erfasst werden sollen. Office SharePoint Server 2007 stellt auch eine Berichterstellungsfunktion bereit, die für das Verwalten und Anzeigen von Überwachungsprotokollen Microsoft Office Excel-Arbeitsmappen verwendet. Damit gibt Ihnen Office SharePoint Server 2007 die Möglichkeit, die Überwachungsunterstützung von Windows SharePoint Services zu nutzen, ohne jeglichen Code schreiben zu müssen.

Überwachung auf Elementebene: Eine benutzerdefinierte Überwachungslösung

Dieser Artikel enthält eine benutzerdefinierte Lösung zur Überwachung auf Elementebene (MOSSSampleItemLevelAuditing.exe), die Verfahren vorstellt, mit denen die Überwachungsunterstützung in Windows SharePoint Services und Office SharePoint Server 2007 erweitert werden kann. Zunächst zeigt die benutzerdefinierte Lösung, wie Windows SharePoint Services durch Aktivieren der Überwachungsprotokollierung programmgesteuert erweitert werden kann. Sie stellt auch eine Benutzeroberflächenkomponente bereit, die für Benutzer einer Windows SharePoint Services-Website Überwachungsprotokollinhalte anzeigt. Diese benutzerdefinierte Lösung führt auch vor, wie Office SharePoint Server 2007 erweitert werden kann, indem durch Verwendung der neuen Office Open XML-Formate für das Erstellen von Excel-Arbeitsmappen mit Überwachungsinformationen zusätzliche Unterstützung für die Berichterstellung bereitgestellt wird. Die Lösung zur Überwachung auf Elementebene zeigt auch, wie ein Problem gelöst werden kann, das derzeit weder mit Windows SharePoint Services noch mit Office SharePoint Server 2007 bewältigt werden kann: Die benutzerdefinierte Lösung führt vor, wie Überwachungsprotokolleinträge, die einem einzelnen Element in einer Liste oder einem einzelnen Dokument in einer Dokumentbibliothek zugeordnet sind, angezeigt und entsprechende Berichte erstellt werden können.

Der gesamte Beispielcode für diese Lösung ist in einem Microsoft Visual Studio 2005-Projekt namens „ItemAuditing.csproj“ enthalten. Abbildung 1 zeigt eine Ansicht der verschiedenen Dateien, aus denen diese Lösung besteht. Diese Projektdateien verwenden viele neue Entwicklungsverfahren, die in Windows SharePoint Services 3.0 eingeführt wurden, wie z. B. benutzerdefinierte Anwendungsseiten, Features und Lösungspakete.

Abbildung 1: Projekt ItemAuditing
Abbildung 1: Projekt "ItemAuditing"

Bevor Sie beginnen, stellen Sie sicher, dass folgende Software auf Ihrem Entwicklungscomputer installiert ist:

  • Microsoft .NET Framework 3.0 (RTM-Version)

  • Microsoft Visual Studio 2005

  • Microsoft Windows SharePoint Services 3.0

  • Microsoft Office SharePoint Server 2007

Laden Sie als Nächstes die Datei „MOSSSampleItemLevelAuditing.exe“ herunter, und extrahieren Sie den Inhalt in ein Verzeichnis auf Ihrem Entwicklungscomputer. Befolgen Sie die Anweisungen in „Setup Document.docx“, um die Beispiellösung zu starten. Nach Ausführung der Anweisungen im Setupdokument befindet sich das vollständige Visual Studio 2005-Projekt auf Ihrem Computer. In den übrigen Abschnitten dieses Artikels werden die verschiedenen Bestandteile erläutert, auf denen die Lösung basiert.

Die Lösung zur Überwachung auf Elementebene besteht aus folgenden Komponenten:

  • Einem Windows SharePoint Services-Feature namens „Item Auditing“ (Elementüberwachung)

  • Zwei Anwendungsseiten namens „AuditLogViewer.aspx“ und „ItemAudit.aspx“

  • Einem benutzerdefinierten Handler namens „AuditLogWorkbook.ashx“

  • Einer Assembly namens „ItemAuditing.dll“

Wir beginnen mit der Untersuchung des Item Auditing-Features und seiner Datei „feature.xml“.

Xml

<Feature Id="AA929AFF-4602-4d7f-A501-B80AC9A4BB52"
Title="Item Auditing"
Description="This feature allows user to view the audit history of documents."
ImageUrl="CALVIEW.GIF"
Version="1.0.0.0"
Scope="Site"
ReceiverAssembly="ItemAuditing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7fd3ed697555604d"
ReceiverClass="ItemAuditing.ItemAuditingFeatureReceiver"
xmlns="http://schemas.microsoft.com/sharepoint/">

<ElementManifests>
<ElementManifest Location="elements.xml" />
</ElementManifests>
</Feature>
		

Ein Windows SharePoint Services 3.0-Feature ist stets im Bereich der Serverfarmebene installiert. Sie können jedoch den Aktivierungsbereich eines Features auf eine von vier Ebenen festlegen. Ein Feature kann so entworfen werden, dass es innerhalb des Bereichs einer Website, einer Websitesammlung, einer Webanwendung oder einer Serverfarm aktiviert wird. In diesem Fall wurde das Item Auditing-Feature so entworfen, dass sein Aktivierungsbereich die Websitesammlungsebene ist. Sie können anhand des zuvor beschriebenen Feature-Elements sehen, dass das Scope-Attribut auf Site gesetzt ist. Dies bedeutet, dass es innerhalb des Bereichs einer Websitesammlung aktiv ist. Wenn Sie ein Feature erstellen möchten, das innerhalb des Bereichs einer Website statt einer Websitesammlung aktiv ist, sollten Sie dem Scope-Attribut den Wert Web statt Site zuweisen.
Nachdem das Item Auditing-Feature innerhalb einer Windows SharePoint Services-Serverfarm installiert wurde, kann es in jeder beliebigen Websitesammlung innerhalb der Serverfarm aktiviert werden. Wenn Sie zur Verwaltungsseite „Site Collection Features“ (Websitesammlungsfeatures) navigieren, können Sie das Feature aktivieren (siehe Abbildung 2).

Abbildung 2: Verwaltungsseite Site Collection Features
Abbildung 2: Verwaltungsseite „Site Collection Features“ (Websitesammlungsfeatures)

Wenn Sie das Feature-Element innerhalb der Datei „features.xml“ untersuchen, sehen Sie, dass es ein ReceiverAssembly-Attribut und ein ReceiverClass-Attribut enthält. Dieses Verfahren ermöglicht es dem Feature, auf eine Assembly mit einer Klasse zu verweisen, die einen Ereignishandler bereitstellt, der bei Aktivierung des Features ein Ereignis auslöst. Diese Art featurespezifischer Ereignisverarbeitung wird durch das Erstellen einer benutzerdefinierten Klasse ermöglicht, die von der SPFeatureReceiver-Klasse erbt (siehe ItemAuditingFeatureReceiver-Klasse im folgenden Code).

C#

using System;
using Microsoft.SharePoint;

namespace ItemAuditing {

public class ItemAuditingFeatureReceiver : SPFeatureReceiver {

public override void FeatureActivated(SPFeatureReceiverProperties properties)  {
// The feature activation code goes here.
}

public override void FeatureInstalled(SPFeatureReceiverProperties properties) { }
public override void FeatureUninstalling(SPFeatureReceiverProperties properties) { }
public override void FeatureDeactivating(SPFeatureReceiverProperties properties) { }

}
}

Die Featureempfängerklasse, die für die Lösung zur Überwachung auf Elementebene erstellt wird, stellt nur innerhalb der Ereignishandlermethode FeatureActivated Code bereit. Es können jedoch noch drei weitere Methoden geschrieben werden, um Ereignisverarbeitungsverhalten bereitzustellen: Wenn ein Feature installiert wird, und wenn es deaktiviert und deinstalliert wird.

Wenn das Item Auditing-Feature aktiviert wird, führt seine Ereignishandlermethode FeatureActivated Code aus, der erforderlich ist, um die Überwachungsfunktion von Windows SharePoint Services einzuschalten. Der Code innerhalb des Ereignishandlers erreicht dies durch Erhalt eines Verweises zu einem SPSite-Objekt für die aktuelle Websitesammlung und durch anschließendes Festlegen der entsprechenden Überwachungskennzeichen in der Audit-Eigenschaft des SPSite-Objekts.

C#

public override void FeatureActivated(SPFeatureReceiverProperties properties)  {

SPSite siteCollection = (SPSite)properties.Feature.Parent;
// Turn on auditing flags.
siteCollection.Audit.AuditFlags = SPAuditMaskType.All;
siteCollection.Audit.Update();

// Modify title of top-level site.
SPWeb site = siteCollection.RootWeb;
site.Title += " (audited)";
site.Update();

SPListTemplate template = site.ListTemplates["Document Library"];
Guid docLibID = site.Lists.Add("AuditLogs", "Library for Audit Log Workbooks", template);
SPList docLib = site.Lists[docLibID];
docLib.OnQuickLaunch = true;
docLib.Update();
}
		

Wie im Code zu sehen ist, aktualisiert der FeatureActivated-Ereignishandler auch den Titel der Website auf oberster Ebene, um sichtbar zu machen, dass er erfolgreich ausgeführt wurde. Es gibt auch Code für das Erstellen einer Dokumentbibliothek namens „Audit Logs“ in der Website oberster Ebene. Diese Dokumentbibliothek wird als Repository für Office Excel-Arbeitsmappen verwendet, die Überwachungsprotokolldaten enthalten. Weitere Informationen sind in nachfolgenden Abschnitten dieses Artikels enthalten.

Im Folgenden soll näher auf den Code eingegangen werden, der die Protokollierung auf Ebene der Websitesammlung aktiviert. Die Audit-Eigenschaft stellt ein SPAudit-Objekt zur Verfügung, das eine AuditFlags-Eigenschaft bereitstellt. Die AuditFlags-Eigenschaft basiert auf der SPAuditMaskType-Enumeration. Ihr kann einfach der Wert All zugewiesen werden, um alle Überwachungsfunktionen einzuschalten. Beachten Sie auch, dass nach Änderung der Überwachungskennzeichen eines SPAudit-Objekts ein Aufruf an die Update-Methode erfolgen muss.

C#

siteCollection.Audit.AuditFlags = SPAuditMaskType.All; 
siteCollection.Audit.Update(); 

Sie haben gerade gesehen, wie die Überwachung für eine ganze Websitesammlung aktiviert wird. Sie sollten sich jedoch dessen bewusst sein, dass dies für eine große Websitesammlung mit umfangreichem Datenverkehr eine sehr teure Angelegenheit sein kann. Wenn Sie z. B. eine große Websitesammlung mit vielen aktiven Benutzern haben oder wenn Sie häufige Vorgänge überwachen, wie das Lesen von Seiten, wird sich das Überwachungsprotokoll sehr schnell mit Daten füllen.

In einigen Fällen, z. B. wenn Sie ein Repository für geheime Dokumente in einer Regierungsbehörde entwerfen, kann es erforderlich sein, jedes überwachbare Ereignis aufzuzeichnen. Deshalb werden sie möglicherweise alle Überwachungsereignisse auf Ebene der Websitesammlung aktivieren. Unter Umständen werden Sie auch erwägen, geheime Dokumente in eine eigene Websitesammlung zu verlegen, sodass Sie nicht die gleiche Menge von Überwachungsinformationen aufzeichnen müssen, wenn Benutzer nichtgeheime Dokumente abrufen.

Es gibt möglicherweise weitere Szenarios, in denen Sie stärker kontrollieren möchten, was innerhalb des Bereichs einer einzelnen Websitesammlung überwacht wird. Es kann z. B. sein, dass Sie Aktualisierungsvorgänge, aber keine Lesevorgänge überwachen möchten. Vielleicht müssen Sie den Zugriff auf eine Dokumentbibliothek überwachen, nicht aber den auf eine andere Dokumentbibliothek innerhalb der gleichen Website. Zum Glück können Sie mit Windows SharePoint Services wählen, wie Sie die Überwachung aktivieren. Sie können z. B. die Überwachung für eine einzelne Dokumentbibliothek einschalten.

C#

SPSite siteCollection = new SPSite("http://LitwareServer1");
SPWeb site = siteCollection.OpenWeb();
SPList list = site.Lists["Proposals"];
list.Audit.AuditFlags = SPAuditMaskType.All;
list.Audit.Update();

Beachten Sie auch, dass Sie, wenn Sie die Überwachung aktivieren, nicht jeden Typ überwachbarer Ereignisse aufzeichnen müssen. Es gibt Überwachungskennzeichen, mit denen Sie festlegen können, welche Arten von Überwachungsereignissen Windows SharePoint Services aufzeichnen soll. Die Enumerationswerte von SPAuditMaskType sind bitweise Kennzeichen, die zusammen verwendet werden können, um genau festzulegen, welcher Satz von Überwachungsereignissen aufgezeichnet werden soll.

C#

list.Audit.AuditFlags = SPAuditMaskType.View |
SPAuditMaskType.Update |
SPAuditMaskType.Delete;
list.Audit.Update();

Der vorherige Code ist ein Beispiel für eine Teilmenge von Ereignistypen, die Sie in das Überwachungsprotokoll aufnehmen können. Es folgt eine vollständige Liste der verfügbaren Enumerationswerte.

C#

SPAuditMaskType.CheckIn
SPAuditMaskType.CheckOut
SPAuditMaskType.ChildDelete
SPAuditMaskType.Copy
SPAuditMaskType.Delete
SPAuditMaskType.Move
SPAuditMaskType.ProfileChange
SPAuditMaskType.SchemaChange
SPAuditMaskType.Search
SPAuditMaskType.SecurityChange
SPAuditMaskType.Undelete
SPAuditMaskType.Update
SPAuditMaskType.View
SPAuditMaskType.Workflow
		

Anzeigen von Überwachungsprotokolleinträgen

Nun, da Sie gesehen haben, wie die Überwachungsprotokollierung aktiviert wird, können wir uns darauf konzentrieren, wie Ereignisinformationen aus dem Überwachungsprotokoll für Websitebenutzer angezeigt werden können. Die Lösung zur Überwachung auf Elementebene stellt eine Anwendungsseite namens „AuditLogViewer.aspx“ bereit. Diese Seite dient dazu, den gesamten Inhalt des Überwachungsprotokolls der Websitesammlung für Websiteadministratoren anzuzeigen.

Die Lösung zur Überwachung auf Elementebene umfasst eine Datei namens „elements.xml“, die zwei CustomAction Element (Custom Action)-Elemente bereitstellt. Das CustomAction-Element dient dazu, dem Menü „Site Actions“ ein Menüelement hinzufügen, das einem Websiteadministrator ermöglicht, zu „AuditLogViewer.aspx“ zu navigieren.

Xml

<!-- Add Command to Site Actions Dropdown -->
<CustomAction Id="SiteActionsToolbar"
GroupId="SiteActions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="1001"
Title="Audit Log Viewer"
Description="This page allows you to see the audit log."
RequireSiteAdministrator="True"
ImageUrl="/_layouts/images/LTTXTBOX.GIF">
<UrlAction Url="~sitecollection/_layouts/AuditLogViewer.aspx"/>
</CustomAction>
	  

Dieses CustomAction-Element wurde entworfen, um das in Abbildung 3 abgebildete Menüelement hinzuzufügen. Das CustomAction-Element wurde mit einem RequiresSiteAdministrator-Attribut definiert, dem der Wert true zugewiesen wurde. Weil dem hostenden Item Auditing-Feature die Websitesammlung als Bereich zugewiesen wurde, wird das Menüelement nur für Benutzer angezeigt, die Besitzer einer Websitesammlung sind. Sie können sehen, dass das URL-Attribut des UrlAction-Elements mit einem URL konfiguriert wurde, die das ~sitecollection-Token enthält. Dies bedeutet, dass Windows SharePoint Services einen URL dynamisch analysieren kann, um den Benutzer zu dieser Anwendungsseite umzuleiten, die auf dem Stammpfad zur aktuellen Websitesammlung basiert.

Abbildung 3: Benutzerdefiniertes Menüelement
Abbildung 3: Benutzerdefiniertes Menüelement

Wenn Besitzer von Websitesammlungen auf das Menüelement klicken, um zur Seite „Audit Log Viewer“ zu navigieren, werden sie zur benutzerdefinierten Anwendungsseite namens „AuditLogViewer.aspx“ umgeleitet, die sich im Verzeichnis für virtuelle Layouts befindet. Diese benutzerdefinierte Anwendungsseite liest sämtliche Ereignisinformationen aus dem Überwachungsprotokoll der Websitesammlung und zeigt sie mithilfe eines SPGridView-Steuerelements an (siehe Abbildung 4).

Abbildung 4: Seite Audit Log Viewer
Abbildung 4: Seite "Audit Log Viewer"

Die Erstellung benutzerdefinierter Anwendungsseiten wie „AuditLogViewer.aspx“ bietet ein sehr nützliches Verfahren für das Hinzufügen von Benutzeroberflächenkomponenten zu einer Windows SharePoint Services-Lösung, die benutzerdefinierten Code enthält. Im Unterschied zu Websiteseiten (wie z. B. „default.aspx“) wird eine benutzerdefinierte Anwendungsseite einmal pro Serverfarm bereitgestellt und kann nicht einzeln für jede Website angepasst werden. Weil Anwendungsseiten aus dem Verzeichnis virtual_layout heraus ausgeführt und in eine einzelne Assembly-DLL kompiliert werden, die von allen Websites innerhalb der Serverfarm verwendet wird, sind sie leistungsfähiger als Websiteseiten. Anwendungsseiten bieten Ihnen außerdem im Unterschied zu Websitesseiten die Möglichkeit, direkt Code hinzuzufügen.

Benutzerdefinierte Anwendungsseiten werden oft erstellt, um eine Verknüpfung zu application.master einzurichten, der Hauptmasterseite, die von Windows SharePoint Services-Anwendungsseiten verwendet wird. Sie sollten in der Regel Anwendungsseiten schreiben, die von einer Basisklasse erben, die innerhalb der Microsoft.SharePoint-Assembly namens LayoutsPageBase definiert ist. Der folgende Code bietet einen Ausgangspunkt mit dem grundlegenden Layout für eine benutzerdefinierte Anwendungsseite wie „AuditLogViewer.aspx“.

	<%@ Assembly="" Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,                  
PublicKeyToken=71e9bce111e9429c"%>
<%@ Page="" Language="C" MasterPageFile="~/_layouts/application.master" 
Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase"  %>
<%@ Import="" Namespace="Microsoft.SharePoint" %>
<%@ Import="" Namespace="System.Data" %>
<%@ Register="" TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<script runat="server">
		protected override bool RequireSiteAdministrator {
		get { return true;}
		}
		protected override void OnLoad(EventArgs e)  {
		// Code goes here.
		}
	</script>

	<asp:Content ID="contentMain" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<asp:Button ID="cmdRefreshPage" runat="server" Text="Refresh Page" 
						OnClick="cmdRefreshPage_Click" />
		<asp:Button ID="cmdDeleteAllEntires" runat="server" Text="Clear Audit Log"
OnClick="cmdDeleteAllEntires_Click" />
<hr />
		<SharePoint:SPGridView ID="SPGridView1" runat="server" AutoGenerateColumns="False" />
	</asp:Content>
							

Der Code auf dieser Seite setzt die RequireSiteAdministrator-Eigenschaft außer Kraft und gibt den Wert true zurück. Dies ermöglicht Ihnen, eine Anwendungsseite auf deutlich sicherere Weise zu sperren. Nachdem Sie die RequireSiteAdministrator-Eigenschaft auf diese Art außer Kraft gesetzt haben, haben Sie die Sicherheit Ihrer Umgebung erheblich gesteigert. Wenn ein Benutzer, der kein Websiteadministrator ist, versucht, zu dieser Anwendungsseite zu navigieren, leitet Windows SharePoint Services den Benutzer zur standardmäßigen „Zugriff verweigert“-Seite von WSS um.

Diese Definition von „AuditLogViewer.aspx“ verfügt ganz oben über einen Skriptblock mit Code, der in Bezug auf das Objektmodell programmiert. Wenn Sie eine Seite wie diese innerhalb von Visual Studio 2005 programmieren, profitieren Sie von praktischen Funktionen wie Farbcodierung und IntelliSense. Sie müssen jedoch darauf achten, oben auf der Seite die richtige @Assembly-Direktive hinzuzufügen. Sie sollten die zuvor gezeigte @Assembly-Direktive mit Informationen für die Microsoft.SharePoint-Assembly anpassen.

Anwendungsseiten sind nützlich, weil sie schnellen und einfachen Zugriff auf das Windows SharePoint Services-Objekt ermöglichen. Nachdem Sie eine Anwendungsseite erstellt und eine außer Kraft gesetzte Implementierung der OnLoad-Methode wie zuvor gezeigt bereitgestellt haben, können Sie mithilfe des folgenden Codes Einstiegspunkte in das Windows SharePoint Services-Objektmodell in einem websitespezifischen Kontext abrufen.

C#

			protected override void OnLoad(EventArgs e)  {
			SPSite siteCollection = SPContext.Current.Site;
			SPWeb site = SPContext.Current.Web;
			}
		

Die Möglichkeit des Abrufs von websitebezogenem Kontext macht es möglich, deutlich leistungsfähigere Anwendungsseiten zu schreiben. Eine Anwendungsseite kann sich in Abhängigkeit von Ihrem Websitezugriffspfad unterschiedlich verhalten. Wenn Sie durch den Kontext einer bestimmten Website zu einer Anwendungsseite navigieren, verhält sie sich meist anders, als wenn Sie durch den Kontext einer anderen Website zur Seite navigiert sind.

Im Folgenden diskutieren wir den Code innerhalb des OnLoad-Ereignisses, das in „AuditLogViewer.aspx“ definiert ist. Der Code wurde geschrieben, um das Überwachungsprotokoll der aktuellen Websitesammlung zu lesen, indem ein SPAuditQuery-Objekt erstellt und dann als Parameter in einem Aufruf an die GetEntries-Methode übergeben wird. Ein Aufruf an die GetEntries-Methode gibt ein SPAuditEntryCollection-Objekt zurück, das ermöglicht, einen Eintrag im Zielüberwachungsprotokoll mithilfe einer einfachen for…each-Schleife zu untersuchen.

C#

SPSite siteCollection = SPContext.Current.Site;
SPAuditQuery wssQuery = new SPAuditQuery(siteCollection);
SPAuditEntryCollection auditCol = siteCollection.Audit.GetEntries(wssQuery);

foreach (SPAuditEntry entry in auditCol) {
// inspect entry
}

Wenn Sie die gesamte Implementierung der OnLoad-Methode innerhalb von „AuditLogViewer.aspx“ untersuchen, sehen Sie, dass sie geschrieben wurde, um Überwachungsereignisinformationen mithilfe des SPGridView-Steuerelements anzuzeigen. Dieser Ansatz sorgt dafür, dass die Anzeige der Überwachungseinträge mit dem Erscheinungsbild anderer Aspekte in Windows SharePoint Services übereinstimmt. Beim Füllen des SPGridView-Steuerelements mit Überwachungseinträgen wird ein Microsoft ADO.NET-DataTable-Objekt erstellt, und Überwachungsprotokollinformationen werden in dieses Objekt geschrieben. Das Verfahren zum Erstellen und Füllen eines DataTable-Objekts macht es leicht, die Informationen an das SPGridView-Steuerelement zu binden.

Beachten Sie, dass Windows SharePoint Services die Zeiten für Überwachungsereignisse auf Grundlage der „Coordinated Universal Time (UTC)“ (hierzulande besser bekannt als „Greenwich Mean Time (GMT)“) erfasst. Nachdem der Code in der Beispielanwendung die Zeit abgerufen hat, wird sie in die Ortszeit des Webservers umgewandelt, indem die ToLocalTime-Methode aufgerufen wird, die von der DateTime-Klasse von Microsoft .NET Framework bereitgestellt wird. Beachten Sie jedoch, dass, wenn sich z. B. Ihr Front-End-Webserver und der Benutzer in verschiedenen Zeitzonen befinden, diese Beispielanwendung keine Unterstützung für das Übersetzen von Überwachungsereigniszeiten in die Zeitzone des Benutzers bereitstellt.

Wenn Sie die Implementierung des Codes untersuchen, der Informationen aus dem Windows SharePoint Services-Überwachungsprotokoll liest, achten Sie darauf, wie der Code Benutzernamen abruft. Das Windows SharePoint Services-Überwachungsprotokoll erfasst Benutzer-IDs, aber keine Benutzernamen. Nachdem Sie eine Benutzer-ID erhalten haben, können Sie den zugeordneten Benutzernamen mithilfe der GetByID-Methode für die SiteUser-Sammlung abrufen, die als Eigenschaft der Website oberster Ebene zur Verfügung gestellt wird. Stellen Sie sicher, dass Sie die SiteUsers-Sammlung verwenden. Verwechseln Sie diese nicht mit der User-Sammlung, die nicht die gleichen Ergebnisse bereitstellt.

C#

Private string GetUserNameById(int UserId, SPWeb site) {
return site.SiteUsers.GetByID(UserId).Name;
}
		

Einige Kunden möchten u. U. Teile ihrer Überwachungsprotokolle zu anderen externen Speichern exportieren, z. B. in eine Datenbank oder eine Excel-Tabelle. Die Beispielanwendung stellt auch eine Befehlsschaltfläche bereit, mit der der Benutzer das Windows SharePoint Services-Überwachungsprotokoll leeren kann. Dies wird erreicht, indem die DeleteEntries-Methode für das Ziel-SPAudit-Objekt aufgerufen und ein Parameter mit der Zeit und dem Datum übergeben wird, vor dem Sie alle überwachten Einträge löschen möchten. Bevor DeleteEntries aufgerufen wird, können Sie zusätzlichen Code bereitstellen, mit dem auf einem externen Speicher Ihrer Wahl eine Sicherungskopie der Überwachungsdaten erstellt wird. Dies trägt dazu bei, dass wichtige Überwachungsereignisdaten nicht verloren gehen.

Wir empfehlen, dass Sie diese Schaltfläche nicht wie derzeit implementiert verwenden. Es sei denn, dass OnClick benutzerdefinierte Logik hinzugefügt wird, die für den Export der Daten vor dem Löschen sorgt. Diese Logik wurde hier nicht hinzugefügt, weil verschiedene Organisationen u. U. verschiedene Arten von Sicherungen erstellen möchten.

C#

// Add code here to export audit log into external store.
SPSite siteCollection = SPContext.Current.Site;
siteCollection.Audit.DeleteEntries(DateTime.Now.ToLocalTime().AddDays(1));
siteCollection.Audit.Update();

Wenn Sie eine benutzerdefinierte Überwachungslösung innerhalb einer großen Websitesammlung mit intensivem Datenverkehr ausführen, kann es sehr wichtig sein, das Überwachungsprotokoll in separaten Dateien zu speichern und anschließend zu leeren. Mithilfe eines solchen Ansatzes können Sie Platz oft effektiver verwalten.

Überwachung auf Elementebene

Nun, da Sie den grundlegenden Code gesehen haben, mit dem die Überwachung in Windows SharePoint Services aktiviert wird und Überwachungsereignisinformationen für Benutzer angezeigt werden, wenden wir uns neuen Aufgaben zu. Wir wollen untersuchen, wie Funktionen hinzugefügt werden, mit denen Benutzer Überwachungsinformationen für einzelne Dokumente oder Elemente anzeigen können. Zunächst wird ein benutzerdefiniertes Menüelement innerhalb des ECB-Menüs (Edit Control box, Feld „Steuerelement bearbeiten“) erstellt, und zwar für alle Dokumente innerhalb der Websitesammlung, für die das Item Auditing-Feature aktiviert ist. Es soll erreicht werden, dass das ECB-Menü jedes Dokuments innerhalb der Websitesammlung ein Menüelement bereitstellt, das wie folgt aussieht.

Abbildung 5: Benutzerdefiniertes Menüelement im ECB-Menü
Abbildung 5: Benutzerdefiniertes Menüelement im ECB-Menü

Ein benutzerdefiniertes Menüelement wie das in Abbildung 5 dargestellte wurde erstellt, indem der Datei „elements.xml“ des Item Auditing-Features ein zweites CustomAction-Element hinzugefügt wurde. Das CustomAction-Element weicht von dem zuvor gezeigten ab, weil es ein Location-Attribut hat, dem der Wert EditControlBlock zugewiesen wurde. Dieser Attributwert weist Windows SharePoint Services an, das Menüelement dem ECB-Menü für einen bestimmten Satz von Elementen oder Dokumenten hinzuzufügen. Das CustomAction-Element definiert den Zielsatz für das Menüelement, indem ein RegistrationType-Attribut mit dem Wert List und ein RegistrationID-Attribut mit dem Wert 101 verwendet wird, der Kennung für standardmäßige Windows SharePoint Services-Dokumentbibliotheken. Beachten Sie, dass diese Beispielanwendung Überwachung auf Elementebene nur für Dokumente innerhalb von Dokumentbibliotheken bereitstellt. Die Überwachung auf Elementebene kann jedoch problemlos auf jede andere Art von Liste ausgedehnt werden.

Xml

<!-- Per Item Dropdown (ECB) Link -->
<CustomAction Id="ItemAuditing.ECBItemMenu"
RegistrationType="List"
RegistrationId="101"
ImageUrl="/_layouts/images/GORTL.GIF"
Location="EditControlBlock"
Sequence="300"
Title="View Audit History">
<UrlAction Url="~site/_layouts/ItemAudit.aspx?ItemId={ItemId}&ListId={ListId}"/>
</CustomAction>
		

Sie sollten auch den Wert des URL-Attributs innerhalb des UrlAction-Elements beachten. Das URL-Attribut ist folgendermaßen konfiguriert.

Xml

~site/_layouts/ItemAudit.aspx?ItemId={ItemId}&ListId={ListId}

Beachten Sie zunächst, dass dieser URL konfiguriert wurde, um den Benutzer zur zweiten benutzerdefinierten Anwendungsseite namens „ItemAudit.aspx“ umzuleiten. Beachten Sie außerdem, dass es drei Tokens innerhalb dieses URLs gibt, die durch Windows SharePoint Services zur Laufzeit dynamisch ersetzt werden. Das ~site-Token wird durch den URL ersetzt, der auf die aktuelle Website zeigt. Das {ListId}-Token wird durch die GUID ersetzt, die die aktuelle Dokumentbibliothek kennzeichnet. Das {ItemId}-Token wird durch die Ganzzahlkennung des Dokuments ersetzt. Diese letzten zwei Tokens werden verwendet, um eine Abfragezeichenfolge zu analysieren, die „ItemAudit.aspx“ jene Informationen geben kann, die es benötigt, um mithilfe des Windows SharePoint Services-Objektmodells auf das Zieldokument sowie auf die Dokumentbibliothek, die das Zieldokument enthält, zuzugreifen.

Wenn Benutzer das Menü „View Audit History“ (Überwachungsverlauf anzeigen) des ECB-Menüs für ein bestimmtes Dokument auswählen, werden sie zur benutzerdefinierten Anwendungsseite namens „ItemAudit.aspx“ umgeleitet. Ihnen wird dann eine Ansicht des Dokuments angezeigt, in der in das Protokoll geschriebene Überwachungsereignisse detailliert aufgeführt werden (siehe Abbildung 6).

Abbildung 6: Benutzerdefinierte ItemAudit.aspx-Seite
Abbildung 6: Benutzerdefinierte „ItemAudit.aspx“-Seite

Nun, da Sie die Benutzerperspektive der ItemAudit-Seite kennengelernt haben, können wir den zugrunde liegenden Code untersuchen. Die grundlegende Struktur dieser Anwendungsseite ähnelt „AuditLogViewer.aspx“. Im Unterschied zu „AuditLogViewer.aspx“ wurde „ItemAudit.aspx“ aber nicht für die ausschließliche Verwendung durch Websiteadministratoren entworfen. Anderen Benutzern kann in Abhängigkeit von ihren Anforderungen ebenfalls ermöglicht werden, diesen Code anzuzeigen.

Lassen Sie uns zunächst den Code untersuchen, der erforderlich ist, um die Listenelement-ID für das Dokument und die GUID für die Dokumentbibliothek aus der Abfragezeichenfolge zu extrahieren. Wie Sie im zuvor gezeigten Code sehen können, wird dies mithilfe eines Standardprogrammierverfahrens erreicht, das die QueryString-Eigenschaft des ASP.NET-Request-Objekts verwendet.

C#

SPSite siteCollection = SPContext.Current.Site;
SPWeb site = SPContext.Current.Web;

string ListId = Request.QueryString["ListId"];
string ItemId = Request.QueryString["ItemId"];

SPList list = site.Lists[new Guid(ListId)];
SPListItem item = list.Items.GetItemById(Convert.ToInt32(ItemId));

txtListId.Text = ListId;
txtItemTitle.Text = list.Title;
txtItemId.Text = ItemId;
txtItemTitle.Text = item.Title;
		

Dieser Code zeigt auch, dass Sie mit ein wenig zusätzlichem Code, der das Windows SharePoint Services-Objektmodell betrifft, ein SPList-Objekt und ein SPListItem-Objekt erstellen können, um in Bezug auf die Dokumentbibliothek und das Zieldokument zu programmieren.

„ItemAudit.aspx“ enthält Code, der das Überwachungsprotokoll abfragt. Dies unterscheidet sich vom Code, der zuvor in „AuditLogViewer.aspx“ gezeigt wurde, weil nach Überwachungsereignissen gefragt wird, die für ein einzelnes Dokument spezifisch sind. Letzteres wird erreicht, indem die RestrictToList-Methode für das SPAuditQuery-Objekt aufgerufen wird, bevor ein Aufruf an GetEntries erfolgt und das SPListItem-Objekt übergegeben wird, das dem Zieldokument zugeordnet ist.

C#

SPAuditQuery wssQuery = new SPAuditQuery(siteCollection);
wssQuery.RestrictToListItem(item);
SPAuditEntryCollection auditCol = site.Audit.GetEntries(wssQuery);

foreach (SPAuditEntry entry in auditCol) {
// get info from audit log
}
		

Nun, da Sie gesehen haben, wie das Überwachungsprotokoll nach Ereignissen abgefragt wird, die für einzelne Dokumente spezifisch sind, können wir uns mit einem der komplizierteren Aspekte des Item Aditing-Features befassen. Die Seite „ItemAudit.aspx“ wurde explizit dafür entworfen und implementiert, Überwachungsinformationen für alle Benutzer anzuzeigen, die keine Websiteadministratoren sind. Diese Situation könnte jedoch problematisch sein, weil das Windows SharePoint Services-Objektmodell für jeden Code Administratorrechte erfordert, der die GetEntries-Methode aufruft, um das Überwachungsprotokoll abzufragen. Jeder Code, der mit der Identität eines Benutzers ohne die Berechtigungen eines Websiteadministrators ausgeführt wird, führt zu einem „Zugriff verweigert“-Fehler.

Meist möchten Sie wahrscheinlich Benutzer, die keine Websiteadministratoren sind, daran hindern, Informationen innerhalb eines Überwachungsprotokolls für Websitesammlungen anzuzeigen. Deshalb nimmt das Windows SharePoint Services-Objektmodell diese Einschränkung vor. Das Item Auditing-Feature erlaubt es jedoch, Ausnahmen festzulegen. In diesem speziellen Szenario wollen wir Überwachungsinformationen für beliebige Websitebenutzer anzeigen. Deshalb muss der Code innerhalb von „ItemAudit.aspx“ ein besonderes Programmierverfahren verwenden, um seine Berechtigungen vor dem Lesen von Daten aus dem Windows SharePoint Services-Überwachungsprotokoll zu erhöhen.

Der Code in „ItemAudit.aspx“ wurde geschrieben, um mit der SPSecurity-Klasse zu interagieren, und zwar mit dem Zweck, einen Aufruf an eine statische Methode namens RunWithElevatedPrivileges durchzuführen. Diese Methode nimmt einen einzelnen Parameter an, der ein Delegat ist. Wenn Sie diesen Code auf effiziente Weise schreiben möchten, können Sie anonyme Methoden verwenden (siehe folgendes Codebeispiel).

C#

SPSecurity.RunWithElevatedPrivileges( delegate()  {
// Code to run with elevated privileges goes here.
// This code runs as SHAREPOINT/SYSTEM account.
});

Nachdem Sie die Berechtigungen des Codes mithilfe dieses Verfahrens erhöht haben, müssen Sie eine neue Instanz der SPSite-Klasse und der SPWeb-Klasse erstellen. Sie können nicht die Objekte verwenden, die über die Current-Eigenschaft verfügbar sind, weil sie bereits im Sicherheitskontext des aktuellen Benutzers erstellt wurden. Der folgende Code zeigt, wie mithilfe des Kontexts erhöhter Sicherheit ein neues SPSite-Objekt und ein neues SPWeb-Objekt erstellt werden.

C#

SPSite siteColl = SPContext.Current.Site;
SPWeb site = SPContext.Current.Web;

SPSecurity.RunWithElevatedPrivileges(delegate()  {
using (SPSite ElevatedSiteCollection = new SPSite(siteColl.ID)) {
using (SPWeb ElevatedSite = ElevatedSiteCollection.OpenWeb(site.ID)) {
// Now program against elevated SPSite object and SPWeb object.
}
}
});

Der vorherige Code beinhaltet auch die Erstellung des neuen SPSite-Objekts und des neuen SPWeb-Objekts im Microsoft Visual C#-using-Konstrukt, damit Objekte ordnungsgemäß entfernt werden. Nun soll längerer Code untersucht werden, der vorführt, wie das Überwachungsprotokoll für das Zieldokument mithilfe erhöhter Berechtigungen abgefragt wird.

C#

SPSite siteColl = SPContext.Current.Site;
SPWeb site = SPContext.Current.Web;

SPSecurity.RunWithElevatedPrivileges(delegate()  {
using (SPSite ElevatedSiteCollection = new SPSite(siteColl.ID)) {
using (SPWeb ElevatedSite = ElevatedSiteCollection.OpenWeb(site.ID)) {

SPList list = ElevatedSite.Lists[new Guid(ListId)];
SPListItem item = list.Items.GetItemById(Convert.ToInt32(ItemId));

SPAuditQuery wssQuery;
SPAuditEntryCollection auditCol;

wssQuery = new SPAuditQuery(ElevatedSiteCollection);
wssQuery.RestrictToListItem(item);
auditCol = ElevatedSite.Audit.GetEntries(wssQuery);

foreach (SPAuditEntry entry in auditCol)  {
// Query audit log with elevated privileges.
}
}
}
});
		

Schreiben benutzerdefinierter Überwachungseinträge

Sie haben bereits gesehen, dass die „ItemAuditing.aspx“-Seite Überwachungseinträge anzeigen kann, die durch Windows SharePoint Services automatisch in das Überwachungsprotokoll geschrieben werden. Es kommt jedoch manchmal vor, dass Sie ein bestimmtes Problem lösen möchten, indem Sie benutzerdefinierte Einträge in das Überwachungsprotokoll schreiben. Sie könnten z. B. dem OnLoad-Ereignis Code für eine Anwendungsseite hinzufügen, die die IP-Adresse des Benutzers untersucht und dann einen benutzerdefinierten Überwachungsprotokolleintrag schreibt, wenn die IP-Adresse innerhalb des LANs des Unternehmens nicht erkannt wird. In einem weiteren Beispiel könnten Sie Code bereitstellen, um einen benutzerdefinierten Überwachungsprotokolleintrag zu schreiben, der Ereignisse für einen benutzerdefinierten Workflow aufzeichnet.

Wenn Sie die Lösung zur Überwachung auf Elementebene verwenden, müssen Sie benutzerdefinierte Überwachungseinträge schreiben, um aufzuzeichnen, wenn ein Benutzer das Überwachungsprotokoll eines bestimmten Dokuments untersucht. Wenn z. B. ein Benutzer auf das Menüelement „View Audit History“ (Überwachungsverlauf anzeigen) klickt und zu „ItemAudit.aspx“ umgeleitet wird, zeichnet die Windows SharePoint Services-Überwachung dieses Ereignis nicht auf. Deshalb müssen Sie den folgenden Code verwenden, um einen benutzerdefinierten Überwachungseintrag zu schreiben.


C#
SPList list = site.Lists[new Guid(ListId)];
SPListItem item = list.Items.GetItemById(Convert.ToInt32(ItemId));
item.Audit.WriteAuditEvent(SPAuditEventType.Custom,
"CustomViewAuditEvent",  // SoureName
"MyData"  // Any arbitrary XML data
);

		  

Sie haben weiter oben gesehen, dass jener Code mit erhöhten Berechtigungen ausgeführt werden muss, um aus dem Überwachungsprotokoll lesen zu können. Das Gleiche gilt jedoch nicht für Code, der in das Überwachungsprotokoll schreibt, da dies keine erhöhten Berechtigungen erfordert. Wenn Sie Berechtigungen erhöhen, bevor Sie in das Überwachungsprotokoll schreiben, zeigt das Überwachungsprotokoll die Benutzer als SharePoint\SYSTEM und nicht als den aktuellen Benutzer an.

Nachdem Sie einen benutzerdefinierten Überwachungseintrag geschrieben haben, können Sie ihn später aus dem Ereignisprotokoll lesen, und zwar so wie jedes andere Standardüberwachungsereignis, das durch die Überwachungsprotokollierung von Windows SharePoint Services geschrieben wurde. Sie können jedoch benutzerdefinierte Ereignisse parametrisieren, um relevante Informationen im Überwachungsprotokoll zu speichern. Im Beispiel weiter oben wurde gezeigt, wie beim Schreiben eines benutzerdefinierten Ereignisses ein Quellname zugewiesen wird und benutzerdefinierte XML-Daten übergeben werden. Diese Informationen sind dann für Sie verfügbar, wenn Sie Überwachungsereignisse mithilfe der SourceName-Eigenschaft und der EventData-Eigenschaft der SPAuditEntry-Klasse lesen.

C#
foreach (SPAuditEntry entry in auditCol)  {
if (entry.SourceName == "CustomViewAuditEvent") {
string myXml = entry.EventData;
// process custom event
}
}	  

Effiziente Überwachungsunterstützung in Office SharePoint Server 2007

Office SharePoint Server 2007 stellt zwei wertvolle Formate bereit, um Unternehmen beim Überwachen von Benutzerzugriffen auf Inhalte innerhalb von Windows SharePoint Services- und Office SharePoint Server 2007-Websites zu unterstützen. Erstens stellt Office SharePoint Server 2007 eine administrative Benutzeroberfläche bereit, die es Ihnen ermöglicht, die Überwachung zu aktivieren und zu konfigurieren, ohne jeglichen Code schreiben zu müssen. Zweitens ermöglicht Office SharePoint Server 2007 die Erstellung von Berichten. Mit Office SharePoint Server 2007 können Sie Excel-Arbeitsmappen erzeugen, die die Information zu Überwachungsereignissen innerhalb des Windows SharePoint Services-Überwachungsprotokolls enthalten. In den nächsten Abschnitten dieses Artikels wird beschrieben, wie Office SharePoint Server 2007 Überwachungsunterstützung auf Ebene der Websitesammlung sowie auf tieferen Ebenen bereitstellt.

Zunächst soll die integrierte Office SharePoint Server 2007-Unterstützung für das Konfigurieren der Überwachung innerhalb einer Websitesammlung untersucht werden. Gehen Sie zur Websiteeinstellungsseite für eine beliebige Website innerhalb einer Serverfarm, in der Office SharePoint Server 2007 installiert ist. Sie werden sehen, dass hier durch Office SharePoint Server 2007-spezifische Features viele Links hinzugefügt wurden. Suchen Sie innerhalb des Abschnitts „Site Collection Administration“ (Websitesammlungsverwaltung) den Link „Site Collection audit settings“ (Überwachungseinstellungen der Websitesammlung) (siehe Abbildung 7).

Abbildung 7: Verwaltung der Websitesammlung
Abbildung 7: Verwaltung der Websitesammlung

Durch Klicken auf den Link „Site Collection audit settings“ (Überwachungseinstellungen der Websitesammlung) wird eine Office SharePoint Server 2007-spezifische Anwendungsseite namens „AuditSettings.aspx“ geöffnet. Diese Seite stellt eine Benutzeroberfläche (siehe Abbildung 8) zum Aktivieren und Konfigurieren der Überwachungseinstellungen für die aktuelle Websitesammlung bereit. Wie in Abbildung 8 dargestellt, ermöglicht die Anwendungsseite „AuditSettings.aspx“ das Konfigurieren der Websitesammlungsüberwachung auf Ebenen unterschiedlicher Tiefe.

Abbildung 8: Seite AuditSettings.aspx
Abbildung 8: Seite „AuditSettings.aspx“

Neben dem Konfigurieren der Überwachung auf Ebene der Websitesammlung ermöglicht Office SharePoint Server 2007 Ihnen auch das Konfigurieren der Überwachung auf viel tieferer Ebene. Diese Unterstützung wird durch das Feature für Informationsverwaltungsrichtlinien ermöglicht, das in Office SharePoint Server 2007 enthalten ist.

Eine Informationsverwaltungsrichtlinie besteht aus einem Satz von Regeln, die ein Websiteadministrator definieren und dann auf eine bestimmte Art von Inhalt anwenden kann. Die Regeln für eine Informationsverwaltungsrichtlinie werden über Richtlinienfeatures erstellt und konfiguriert. Features, die standardmäßig zusammen mit Office SharePoint Server 2007 bereitgestellt werden, umfassen Unterstützung für Überwachung, Ablauf der Gültigkeit, Dokumentbeschriftungen und Barcodes. Das Programmiermodell für Richtlinienfeatures ist auch erweiterbar. Dies erlaubt es Entwicklern, eigene benutzerdefinierte Richtlinienfeatures zu erstellen. Entwicklerressourcen finden Sie im Anhang am Ende dieses Artikels.

Office SharePoint Server 2007 ermöglicht Ihnen das Erstellen und Konfigurieren einer Informationsverwaltungsrichtlinie für eine bestimmte Instanz einer Liste oder Dokumentbibliothek. Sie können auch eine Informationsverwaltungsrichtlinie für einen Inhaltstyp erstellen, die dann für Listenelemente und Dokumente in Listen oder Dokumentbibliotheken gilt, die über diesen Inhaltstyp definiert sind. Die Möglichkeit, Informationsverwaltungsrichtlinien auf Inhaltstypen anzuwenden, ist sehr hilfreich, weil es eine detailliertere Kontrolle als die Überwachung auf Ebene einer Websitesammlung erlaubt. Dadurch müssen auch weniger Überwachungseinstellungen auf der Ebene von Listen- oder Dokumentbibliotheksinstanzen konfiguriert werden.

Office SharePoint Server 2007 erlaubt auch das Definieren von Informationsverwaltungsrichtlinien auf der Ebene von Websitesammlungen. Dies verbessert die Verwaltbarkeit, weil Sie eine Informationsverwaltungsrichtlinie innerhalb einer Websitesammlung definieren und dann auf Ihre Auswahl von Listen, Dokumentbibliotheken und Inhaltstypen innerhalb der Websitesammlung anwenden können.

Die Seite „Site Settings“ (Websiteeinstellungen) enthält den Link „Site collection policies“ (Websitesammlungsrichtlinien). Wenn Sie auf diesen Link anklicken, wird eine Anwendungsseite namens „Policylist.aspx“ geöffnet. Dort können Sie eine benutzerdefinierte Richtlinie konfigurieren, der die aktuelle Websitesammlung als Bereich zugewiesen ist. Abbildung 9 zeigt ein Beispiel für eine benutzerdefinierte Richtlinie, die erstellt wurde, um einen Standardsatz von Überwachungsereignissen zu konfigurieren, der auf eine beliebige Liste, Dokumentbibliothek oder einen beliebigen Inhaltstyp angewendet werden kann.

Abbildung 9: Seite für benutzerdefinierte Richtlinien
Abbildung 9: Seite für benutzerdefinierte Richtlinien

Nachdem Sie eine benutzerdefinierte Richtlinie auf Ebene der Websitesammlung definiert haben, können Sie zur Seite „List Settings“ (Listeneinstellungen) für eine Liste oder Dokumentbibliothek gehen. Dort finden Sie den Link „Information management policy settings“ (Einstellungen für Informationsverwaltungsrichtlinien, siehe Abbildung 10). Wenn Sie auf diesen Link anklicken, werden Sie zu einer Anwendungsseite namens „Policy.aspx“ umgeleitet, wo Sie eine neue Informationsrichtlinie erstellen können. Alternativ können Sie eine Richtlinie anwenden, die bereits auf Ebene der Websitesammlung definiert ist. In einer Serverfarm mit Office SharePoint Server 2007 finden Sie auf der Windows SharePoint Services-Seite, auf der Sie Inhaltstypen erstellen und konfigurieren können, einen Link zur Seite „Policy.aspx“. Dort können Sie u. a. Richtlinien erstellen oder anwenden.

Abbildung 10: Seite List Settings (Listeneinstellungen)
Abbildung 10: Seite „List Settings“ (Listeneinstellungen)

Abbildung 11 zeigt die Optionen, die auf der Anwendungsseite „Policy.aspx“ verfügbar sind. Dies ist eine einfache Möglichkeit, um eine benutzerdefinierte Richtlinie anzuwenden, die auf Ebene der Websitesammlung erstellt wurde. Dadurch können Sie auch eine spezielle Richtlinie definieren und konfigurieren, die nur für die aktuelle Liste, Dokumentbibliothek oder den aktuellen Inhaltstyp gilt. In vielen Fällen wird dadurch eine bessere Verwaltbarkeit erzielt. Zum Beispiel können Sie alle Ihre Richtlinien auf Ebene der Websitesammlung erstellen und dann einfach auf die entsprechenden Listen, Dokumentbibliotheken und Inhaltstypen anwenden.

Abbildung 11: Anwenden benutzerdefinierter Richtlinien
Abbildung 11: Anwenden benutzerdefinierter Richtlinien

Unterstützung für Überwachungsberichte in Office SharePoint Server 2007

Sie haben gesehen, wie Office SharePoint Server 2007 und Informationsverwaltungsrichtlinien Ihnen helfen können, Überwachungseinstellungen in Windows SharePoint Services zu konfigurieren. Im Folgenden wird näher auf die Berichterstellung eingegangen. Office SharePoint Server 2007 gibt Ihnen die Möglichkeit, mehrere Arten von Überwachungsberichten zu generieren. Sie können verschiedene verfügbare Typen anzeigen, indem Sie auf der Seite „Site Settings“ (Websiteeinstellungen) auf den Link „Audit log reports“ (Überwachungsprotokollberichte) klicken. Dieser Link öffnet eine Anwendungsseite namens „Reporting.aspx“ (siehe Abbildung 12).

Abbildung 12: Seite Reporting.aspx
Abbildung 12: Seite „Reporting.aspx“

Wenn Sie auf einen der Berichtlinks klicken (siehe Abbildung 12), generiert Office SharePoint Server 2007 eine XML-Datei, die an den Benutzer zurückgegeben wird. Der Inhalt dieser Datei basiert auf einem XML namens „Excel Markup Language“ (ExcelML). Wenn Office SharePoint Server 2007 ein ExcelML-Dokument auf dem Server generiert und es zurück an den Benutzer übergibt, erhält der Benutzer die Gelegenheit, das ExcelML-Dokument als standardmäßige Office Excel-Arbeitsmappe zu öffnen.

ExcelML, das ursprünglich für Microsoft Office Excel 2000 geschaffen wurde, wurde später an Microsoft Office 2003 angepasst. Einer der Hauptgründe des Office-Teams für die Schaffung von ExcelML bestand in dem Ziel, serverseitige Excel-Arbeitsmappen zu unterstützen, ohne dass der Server eine Kopie von Microsoft Excel ausführen muss. Zum Beispiel kann eine serverseitige Komponente einen Standard-XML-Parser verwenden, um ein XML-Dokument wie das folgende zu generieren.

Xml

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook>
<Worksheet>
<Table>
<Row>
<Cell>
<Data Type="String">Mission Critical Data Goes Here</Data>
</Cell>
</Row>
</Table>
</Worksheet>
</Workbook>


Nachdem das ExcelML-Dokument generiert worden ist, kann es direkt innerhalb von Microsoft Office Excel geöffnet werden. Das Office SharePoint Server 2007-Team hat dieses Verfahren für seine Überwachungsberichterstellung verwendet. Wenn Sie auf einen Link auf der Seite „Reporting.aspx“ klicken, um einen Überwachungsbericht zu generieren, gibt Office SharePoint Server 2007 ein ExcelML-Dokument zurück, und dem Benutzer wird das in Abbildung 13 dargestellte Dialogfeld angezeigt.

Abbildung 13: Dialogfeld File Download (Dateidownload)
Abbildung 13: Dialogfeld „File Download“ (Dateidownload)

Wenn Sie einen Bericht direkt in Excel öffnen, können Sie die Überwachungsinformationen anzeigen (siehe Abbildung 14). Dort können Sie auch die Arbeitsmappe in einem der unterstützten Excel-Dateiformate speichern. Dieser Ansatz erlaubt es, diese Überwachungsberichte mittels Excel 2003 oder Excel 2007 zu öffnen und anzuzeigen.

Abbildung 14: Überwachungsinformationen in Excel 2007
Abbildung 14: Überwachungsinformationen in Excel 2007

Office SharePoint Server 2007 stellt Standardberichte bereit, die angeben, welche Benutzer Listenelemente und Dokumente angezeigt und aktualisiert bzw. andere Websitekomponenten geändert haben, wie z. B. Listendefinitionen und Sicherheitseinstellungen. Office SharePoint Server 2007 bietet auch beträchtliche Flexibilität für die Parametrisierung, die für die Ausführung informeller Berichte nützlich ist. Zum Beispiel können Sie einen benutzerdefinierten Bericht ausführen und Kriterien eintragen (siehe Abbildung 15).

Abbildung 15: Benutzerdefinierter Bericht
Abbildung 15: Benutzerdefinierter Bericht

Generieren einer Excel-Arbeitsmappe mit Überwachungsprotokollinformationen

Vor der Veröffentlichung von 2007 Microsoft Office System verwendeten Microsoft-Produkte wie Word, Excel und Powerpoint eine Standarddateistruktur, die auf einem binären Format basierte. Diese Dateiformate waren schwierig zu lesen und zu bearbeiten, wenn nicht das Objektmodell der hostenden Office-Anwendung wie Word oder Excel verwendet wurde. Infolgedessen haben Unternehmen versucht, Office-Desktopanwendungen auf dem Server auszuführen, was zu Problemen mit der Skalierbarkeit und Stabilität führte.

Vor der Veröffentlichung von 2007 Microsoft Office System verwendeten Microsoft-Produkte wie Word, Excel und Powerpoint eine Standarddateistruktur, die auf einem binären Format basierte. Diese Dateiformate waren schwierig zu lesen und zu bearbeiten, wenn nicht das Objektmodell der hostenden Office-Anwendung wie Word oder Excel verwendet wurde. Infolgedessen haben Unternehmen versucht, Office-Desktopanwendungen auf dem Server auszuführen, was zu Problemen mit der Skalierbarkeit und Stabilität führte.

In Office 2000 und Office 2003 wurden einige Funktionen zum Erstellen von Excel-Arbeitsmappen und Word-Dokumenten mittels XML hinzugefügt, z. B. die Möglichkeit zum Erstellen von Excel-Arbeitsmappen mit ExcelML.

In 2007 Microsoft Office System hat Microsoft diese Verbesserung durch die Übernahme von Office Open XML-Formaten für Word-, Excel- und Powerpoint-Dokumente deutlich weiterentwickelt. Office Open XML-Formate sind neue Dateistandards zum Erstellen zusammengesetzter Dokumente mit mehreren internen XML-Dateien, die Inhalte von anderen Aspekten des Dokuments trennen, z. B. von Formatierungsanweisungen, Daten und Code.

Die Datei der obersten Ebene in den Office Open XML-Formaten wird als Paket bezeichnet und ist auf Grundlage standardmäßiger ZIP-Datei-Technologie strukturiert. Die internen in einem Paket enthaltenen Dateien werden als Teile bezeichnet. Viele Teile in Word-, Excel- und PowerPoint-Dateien enthalten XML, das entsprechend den veröffentlichten XML-Schemas strukturiert ist. Andere Teile in einem Paket können aus Binärdateien für Elemente wie Grafiken, Audioclips und Videos bestehen.

Ein wesentliches Ziel der Office Open XML-Formate besteht darin, eine Standardmethode für das Lesen, Bearbeiten und Erstellen von Dokumenten in serverseitigen Szenarios bereitzustellen, in denen die Verwendung des Objektmodells einer Desktopanwendung wie Word oder Excel nicht möglich ist.

Nehmen Sie als Beispiel ein Windows SharePoint Services-Websiteszenario, in dem Sie einen Ereignishandler erstellt und konfiguriert haben, der bei jedem Hochladen eines Word-Dokuments ausgelöst wird. Aufgrund der neuen Office Open XML-Formate lassen sich Daten deutlich leichter extrahieren und Dokumente leichter bereinigen, indem Kommentare und persönliche Informationen entfernt werden. Sie können Office Open XML-Formate auch zur Entwicklung serverseitiger Komponenten nutzen, mit denen Word-Dokumente und Excel-Arbeitsmappen dynamisch durch Extrahieren von Daten aus Inhaltsquellen wie einer SharePoint-Liste oder, im Falle unserer benutzerdefinierten Lösung, dem Windows SharePoint Services-Überwachungsprotokoll erstellt werden.

Zum Arbeiten mit den Office Open XML-Formaten müssen Sie sich mit der Programmierung in Bezug auf das neue .NET Framework 3.0-API vertraut machen. Dies ist das empfohlene API für das Öffnen und Erstellen von Paketen. Sie müssen sich auch mit der speziellen Paketstruktur und den XML-Schemas für den Typ Ihres Office-Dokuments vertraut machen. Diese Details ändern sich, wenn Sie zwischen Dokumenten von Microsoft Office Word 2007, Office Excel 2007 und Microsoft Office Powerpoint 2007 wechseln. Auf der Website Open XMLDeveloper.org hat Microsoft eine Entwickler-Community zum Thema Office Open XML-Formate ins Leben gerufen.

Die Lösung zur Überwachung auf Elementebene stellt Code bereit, der Excel-Arbeitsmappen mithilfe von Office Open XML-Formaten generiert. Sie können diesen Code innerhalb der Quelldatei namens „WorkbookFactory.cs“ prüfen. In dieser Quelldatei befindet sich eine Klasse namens AuditLogWorkbook, die in Bezug auf die .NET Framework 3.0-Paket-API programmiert und alle Aufgaben ausführt, die erforderlich sind, um Informationen aus dem Windows SharePoint Services-Überwachungsprotokoll einer neuen Excel-Arbeitsmappe hinzuzufügen.

Beachten Sie, dass der Quellcode von WorkbookFactory.cs in die Assembly namens „ItemAuditing.dll“ kompiliert wird. Um auf die AuditLogWorkbook-Klasse zugreifen zu können, ist in der Seitendefinition eine Assemblydirektive erforderlich.

<%@ Assembly Name="ItemAuditing, Version=1.0.0.0, Culture=neutral,PublicKeyToken=7fd3ed697555604d" %>
<%@ Page Language="C" MasterPageFile="~/_layouts/application.master"
Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase"  %>

<%@ Import Namespace="ItemAuditing" %>

		  

Die benutzerdefinierte Anwendungsseite „ItemAudit.aspx“ enthält eine Befehlsschaltfläche mit der Beschriftung Generate Excel Workbook (Excel-Arbeitsmappe generieren), die es einem Benutzer ermöglicht, bei Bedarf eine Excel-Arbeitsmappe mit den Überwachungsereignisinformationen für ein bestimmtes Dokument zu generieren. Diese Befehlsschaltfläche leitet den Benutzer zu einem benutzerdefinierten Handle im _Layouts-Verzeichnis namens „AuditLogWorkbook.ashx“ um und übergibt die gleiche Abfragezeichenfolge mit der ListId und der ItemId. Das benutzerdefinierte Handle „AuditLogWorkbook.ashx“ verfügt über die gleiche, weiter oben vorgestellte Assemblydirektive, sodass sein Code in Bezug auf die ItemAuditing-Assembly programmiert werden kann. Der Code in „AuditLogWorkbook.ashx“ verwendet die AuditLogWork-Klasse, um diese Aufgabe auszuführen.


C#
AuditLogWorkbook log = new AuditLogWorkbook();
log.WriteHeaderInfo(list.Title, item.Name, DateTime.Now);
SPAuditQuery wssQuery;
SPAuditEntryCollection auditCol;

wssQuery = new SPAuditQuery(ElevatedSiteCollection);
wssQuery.RestrictToListItem(item);
auditCol = ElevatedSite.Audit.GetEntries(wssQuery);

string eventType;
foreach (SPAuditEntry entry in auditCol) {
if (entry.SourceName == "CustomViewAuditEvent") {
eventType = "View Audit Log";
}
else {
eventType = entry.Event.ToString();
}
log.WriteEntry(GetUserNameById(entry.UserId, site),
entry.Occurred.ToLocalTime().ToString(),
eventType,
ParseVersionNumber(entry.EventData));
}

	  

Nachdem der Code in „AuditLogWorkbook.ashx“ mithilfe der AuditLogWorkbook-Klasse die Arbeitsmappe generiert hat, muss er die Arbeitsmappe über den ASP.NET-Response-Datenstrom an den Benutzer zurückgeben. Die AuditLogWorkbook-Klasse stellt eine GetDocument-Methode bereit, die ein MemoryStream-Objekt zurückgibt, das das Paket mit der Excel-Arbeitsmappe enthält. Der Code in „ItemAudit.aspx“ ruft einen Verweis zum MemoryStream-Objekt ab und verwendet ihn, um Inhalte so zurück zum Benutzer zu streamen, dass sie als Excel 2007-Arbeitsmappe erkannt werden.

  C#
  Stream strDocument = log.GetDocument();

  Response.ClearContent();
  Response.ClearHeaders();
  Response.AddHeader("content-disposition", "attachment; filename=AudutLog.xlsx");
  Response.ContentType = @"application/vnd.-excel.document.12";
  Response.ContentEncoding = System.Text.Encoding.UTF8;

  strDocument.Position = 0;
  BinaryWriter writer = new BinaryWriter(Response.OutputStream);
  BinaryReader reader = new BinaryReader(strDocument);
  writer.Write(reader.ReadBytes((int)strDocument.Length));
  reader.Close();
  writer.Close();
  strDocument.Close();

  Response.Flush();
  Response.Close();
		  

Wenn der Benutzer auf „Generate Excel Workbook“ (Excel-Arbeitsmappe generieren) klickt, hat er die Möglichkeit, die Arbeitsmappe direkt in Microsoft Excel zu öffnen oder als .xslx-Datei zu speichern. Wenn der Benutzer die Datei öffnet, werden die Überwachungsereignisinformationen im in Abbildung 16 dargestellten Format angezeigt.

Abbildung 16: Überwachungsereignisinformationen in Excel 2007
Abbildung 16: Überwachungsereignisinformationen in Excel 2007

Serverseitiges Arbeitsmappenrendering mit Excel Services

Office SharePoint Server 2007 stellt viele neue serverseitige Funktionen zum Verwenden von Office Excel-Arbeitsmappen mit Excel Services bereit. Excel Services ist eine serverseitige Version des bewährten Excel-Berechnungsmoduls. Dieses neue Modul wurde unter Berücksichtigung von Windows SharePoint Services 3.0 geschrieben, sodass es skaliert werden kann, um die Anforderungen großer Benutzergruppen zu erfüllen.

Excel Services bietet außerdem ein leistungsfähiges Renderingmodul, das Excel-Arbeitsmappen in HTML konvertieren kann, damit sie in einem Browser angezeigt werden können. Dadurch kann ein Unternehmen einen Satz von Arbeitsmappen in einer zentralen Windows SharePoint Services-Dokumentbibliothek verwalten, und die Inhalte können selbst für Benutzer angezeigt werden, die Excel nicht auf ihrem Computer installiert haben.

Wenn Sie anfangen, Excel Services zu verwenden, werden Sie sehen, dass Sie Arbeitsmappen nicht laden und in HTML konvertieren können, wenn sie nicht zuvor einer Dokumentbibliothek hinzugefügt wurden, die mit einem vertrauenswürdigen Dateispeicherort konfiguriert ist. Der Zweck vertrauenswürdiger Dateispeicherorte besteht darin, dass der zentrale Administrator einer Office SharePoint Server 2007-Serverfarm steuern kann, welche Arbeitsmappen in Excel Services geladen werden können und welche Arten von Datenverbindungen erlaubt sind.

Eine zweite Befehlsschaltfläche in „ItemAudit.aspx“ hat die Beschriftung „View Workbook with Excel Services“ (Arbeitsmappe mit Excel Services anzeigen). Der Ereignishandler für diese Schaltfläche generiert mithilfe der Office Open XML-Formate auch eine Excel-Arbeitsmappe. Im Unterschied zur ersten Befehlsschaltfläche wird der Ereignishandler hinter der zweiten Schaltfläche geschrieben, um die resultierende Excel-Arbeitsmappe innerhalb der Dokumentbibliothek namens „Audit Logs“ (Überwachungsprotokolle) zu speichern. Der Benutzer wird dann umgeleitet, um diese Arbeitsmappe mittels Excel Services anzuzeigen. Wenn Sie einen vertrauenswürdigen Dateispeicherort ordnungsgemäß konfiguriert haben, sollten Sie auf die Schaltfläche klicken und eine HTML-Darstellung der Arbeitsmappe anzeigen können (siehe Beispiel in Abbildung 17).

Abbildung 17: HTML-Darstellung einer Arbeitsmappe
Abbildung 17: HTML-Darstellung einer Arbeitsmappe

Beachten Sie, dass, wenn Sie die Beispielanwendung zur Überwachung auf Elementebene auf einem Computer mit Windows SharePoint Services, aber ohne Office SharePoint Server 2007 ausführen, die Befehlsschaltfläche mit der Beschriftung View Workbook with Excel Services (Arbeitsmappe mit Excel Services anzeigen) nicht ordnungsgemäß funktioniert, weil sie den Benutzer zu einer Anwendung umleitet, die nicht existiert, solange Office SharePoint Server 2007 nicht installiert ist.

Verpacken der Elementüberwachungslösung für die Bereitstellung

Weiter oben wurde die in die Lösung zur Überwachung auf Elementebene integrierte Funktionalität diskutiert. Im Folgenden wird beschrieben, wie eine Lösung wie die Überwachung auf Elementebene für die Bereitstellung verpackt wird. In diesem Szenario umfassen die Dateien, die auf dem Front-End-Webserver bereitgestellt werden müssen, eine Assembly, zwei benutzerdefinierte Anwendungsseiten sowie die Dateien, aus denen sich das Item Auditing-Feature zusammensetzt.

Windows SharePoint Services 3.0 führt einen Bereitstellungsmechanismus ein, der auf Lösungspaketen basiert. Ein Lösungspaket ist eine .cab-Datei mit einer .wsp-Erweiterung, die alle Dateien enthält, die zusammen mit anderen XML-basierten Anweisungen auf dem Front-End-Webserver bereitgestellt werden müssen. Jedes Lösungspaket muss eine Headerdatei namens „manifest.xml“ enthalten, die ein Solution-Element definiert. Sehen Sie sich die folgende „manifest.xml“-Datei an, die für die Lösung zur Elementüberwachung erstellt wurde.

  Xml
  <Solution SolutionId="44BE5F4A-D561-4981-A318-95ABC706364A"
  xmlns="http://schemas.microsoft.com/sharepoint/">

  <FeatureManifests>
  <FeatureManifest Location="ItemAuditing\feature.xml" />
  </FeatureManifests>

  <TemplateFiles>
  <TemplateFile Location="LAYOUTS\AuditLogViewer.aspx"/>
  <TemplateFile Location="LAYOUTS\ItemAudit.aspx"/>
  <TemplateFile Location="LAYOUTS\AuditLogWorkbook.ashx"/>
  </TemplateFiles>

  <Assemblies>
  <Assembly DeploymentTarget="GlobalAssemblyCache" Location="ItemAuditing.dll" />
  </Assemblies>

  </Solution>


		  

Die Datei „manifest.xml“ definiert, welche Dateien Teile der Lösung sind, die auf dem Front-End-Webserver bereitgestellt werden muss. Nachdem Sie die Datei „manifest.xml“ definiert haben, muss sie im nächsten Schritt zusammen mit allen anderen erforderlichen Dateien in eine .cab-Datei kompiliert werden. Dies kann mithilfe des „MAKECAB.EXE“-Tools erreicht werden. Wenn Sie dieses Tool verwenden, müssen Sie eine .did-Datei definieren, die „MAKECAB.EXE“ mitteilt, welche Dateien in der Ausgabe-.cab-Datei enthalten sein müssen. Hier ist ein Beispiel für eine Datei namens „cab.ddf“, die zum Erstellen der „ItemAuditing.wsp“-Paketdatei für die Lösung zur Überwachung auf Elementebene verwendet wurde.

.OPTION EXPLICIT ;Generate errors
.Set CabinetNameTemplate=ItemAuditing.wsp
.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory
.Set CompressionType=MSZIP;** All files are compressed in cabinet files
.Set UniqueFiles="ON"
.Set Cabinet=on
.Set DiskDirectory1=Package

Solution\manifest.xml manifest.xml
TEMPLATE\FEATURES\ItemAuditing\feature.xml ItemAuditing\feature.xml
TEMPLATE\FEATURES\ItemAuditing\elements.xml ItemAuditing\elements.xml
TEMPLATE\LAYOUTS\AuditLogViewer.aspx LAYOUTS\AuditLogViewer.aspx
TEMPLATE\LAYOUTS\ItemAudit.aspx LAYOUTS\ItemAudit.aspx
TEMPLATE\LAYOUTS\AuditLogWorkbook.ashx LAYOUTS\AuditLogWorkbook.ashx
bin\Debug\ItemAuditing.dll ItemAuditing.dll
		  

Nachdem Sie die .ddf-Datei definiert haben, können Sie die folgende Befehlszeilenanweisung ausführen, um die .wsp-Paketlösungsdatei zu erstellen.


			  makecab /f Solution\cab.ddf
		  

Nachdem Sie eine Lösungspaketdatei wie „ItemAuditing.wsp“ generiert haben, haben Sie alles Notwendige, um Ihre Lösung innerhalb einer Windows SharePoint Services- oder Office SharePoint Server 2007-Serverfarm bereitstellen zu können. Das Bereitstellen eines Lösungspakets erfolgt in zwei Schritten. Zuerst müssen Sie das Lösungspaket hinzufügen, das die .wsp-Datei in die Konfigurationsdatenbank kopiert. Dies kann mithilfe des „STSADM.EXE“-Tools erreicht werden.

			  @SET SPDIR="c:\program files\common files\microsoft shared\web server extensions\12"
			  %SPDIR%\bin\stsadm -o addsolution -filename package\ItemAuditing.wsp
		  

Nachdem Sie die Lösung installiert haben, muss sie bereitgestellt werden. Im zweiten Schritt müssen Sie Windows SharePoint Services anweisen, die Lösung auf allen Front-End-Webservern in der Serverfarm bereitzustellen. Dies kann über die von der Anwendung „Windows SharePoint Services Central Administration“ bereitgestellte Benutzeroberfläche erreicht werden (siehe „SetupDocument.docx“). Alternativ kann dieser Schritt mithilfe des „STSADM.EXE“-Tools durchgeführt werden.

			  @SET SPDIR="c:\program files\common files\microsoft shared\web server extensions\12"
			  %SPDIR%\bin\stsadm -o deploysolution -name ItemAuditing.wsp -immediate –allowGacDeployment
		  

Sie können Windows SharePoint Services anweisen, eine Lösung sofort oder später bereitzustellen. In einer Produktionsumgebung hat es sich bewährt, die Bereitstellung von Lösungspaketen außerhalb der normalen Arbeitszeiten durchzuführen, um die Auswirkungen auf Benutzer zu minimieren. Das vorangehende Beispiel zeigt, dass das immediate-Attribut verwendet wird, um Windows SharePoint Services anzuweisen, das Lösungspaket sofort zu installieren.

Beachten Sie auch, dass die vorhergehende Befehlszeilenanweisung zum Ausführen des Lösungsbereitstellungsvorgangs aus dem „STSADM.EXE“-Tool den allowGacDeployment-Parameter enthält. Dieser Parameter ist stets erforderlich, wenn das Lösungspaket dem globalen Assemblycache eine Assembly hinzufügt.

Schlussbemerkung

In diesem Artikel wurde die integrierte Überwachungsunterstützung in Microsoft Windows SharePoint Services 3.0 und Office SharePoint Server 2007 vorgestellt. Es wurde gezeigt, wie Sie diese Unterstützung mit der benutzerdefinierten Lösung zur Überwachung auf Elementebene erweitern können.

Sie haben gelernt, dass Windows SharePoint Services die grundlegenden Bausteine für die Überwachung bereitstellt und dass dies dadurch erreicht wird, dass zum einen ein Überwachungsprotokoll bereitgestellt wird, dem die Websitesammlung als Bereich zugewiesen wurde, und zum anderen die Möglichkeit geboten wird, Überwachungseinträge in dieses Protokoll zu schreiben, wenn Benutzer Inhalte anzeigen und aktualisieren. Sie haben auch gesehen, dass diese Bausteine problemlos mit benutzerdefiniertem Code erweitert werden können, der aus dem Überwachungsprotokoll liest und in ihm schreibt.

Office SharePoint Server 2007 erweitert die Überwachungsunterstützung von Windows SharePoint Services durch Hinzufügen einer umfassenden Schicht, die es ermöglicht, die Überwachung zu aktivieren und zu konfigurieren, ohne jeglichen Code schreiben zu müssen. Die Einbeziehung von Informationsverwaltungsrichtlinien macht es möglich, Überwachungsrichtlinien auf Ebene der Websitesammlung zu erstellen und dann auf Listen, Dokumentbibliotheken und Inhaltstypen anzuwenden.

Office SharePoint Server 2007 stellt außerdem eine Schicht für die Berichterstellung bereit, mit der Excel-Arbeitsmappen mit Überwachungsereignisinformationen generiert werden können. Diese Excel-Arbeitsmappen basieren auf ExcelML und können mit Microsoft Office Excel 2003 oder Microsoft Office Excel 2007 geöffnet werden.

Sie haben gelernt, dass Sie eine benutzerdefinierte Lösung wie z. B. die Lösung zur Überwachung auf Elementebene erstellen können, die die Office Open XML-Formate verwendet, um Excel-Arbeitsmappen zu generieren, die Überwachungsereignisinformationen enthalten. Eine solche Lösung ermöglicht u. a. die Verwendung von Excel Services, um Überwachungsereignisinformationen mit einem Browser innerhalb der resultierenden Arbeitsmappen anzuzeigen. So erreichen Sie sogar die Benutzer, die Excel nicht auf ihren Computern installiert haben.

Weitere Informationen finden Sie auf der Website für Microsoft SharePoint-Produkte und -Technologien.

Weitere Ressourcen

Weitere Informationen finden Sie unter:

Bezüglich Einhaltung gesetzlicher Bestimmungen

Für Entwickler

Anleitungen

Ressourcen für Microsoft-Produkte

Anzeigen: