Freigeben über


Informationen zum Sicherheitsmodell für Formularvorlagen mit verwaltetem Code

InfoPath-Formularvorlagen mit verwaltetem Code unterstützen dieselben Sicherheitsebenen wie Skript, das in unverwalteten Formularvorlagen ausgeführt wird. Außerdem werden zusätzliche Sicherheitsfeatures für den Codezugriff unterstützt, die auf verwalteten Code angewendet werden, der unter der Common Language Runtime (CLR) von .NET Framework ausgeführt wird.

Sicherheitsebenen des verwalteten InfoPath-Objektmodells

In der folgenden Tabelle wird die Beziehung zwischen den Sicherheitsebenen für Skriptobjekt-Modellmember und dem entsprechenden Berechtigungssatz beschrieben, der für die einzelnen Ebenen erforderlich ist, wenn der Objektmodellmember in einer Formularvorlage mit verwaltetem Code verwendet wird.

Sicherheitsebene des Objektmodells Beschreibung Erforderlicher Berechtigungssatz

0

Zugriff ohne Einschränkungen möglich

Keiner

2

Zugriff nur möglich durch Formulare, die in derselben Domäne wie das zurzeit geöffnete Formular ausgeführt werden, oder durch Formulare, denen domänenübergreifende Berechtigungen gewährt wurden.

Keiner

3

Zugriff nur durch voll vertrauenswürdige Formulare möglich.

Voll vertrauenswürdig

Hinweis

Die Sicherheitsebene 1 wird nicht vom aktuellen InfoPath-COM-Server verwendet und ist für künftige Zwecke vorbehalten.

Wichtig

Obwohl die Objektmodellebenen 0 und 2 keinen Berechtigungssatz erfordern, da sie verwalteten Code enthalten, verhalten sie sich gemäß Definition für die Domänensicherheitsebene für den Domänenzugriff, die im folgenden Abschnitt beschrieben wird.

Die Sicherheitsebene für die einzelnen Objektmodellmember, die von den Assemblys "Microsoft.Office.InfoPath" und "Microsoft.Office.Interop.InfoPath.SemiTrust" offen gelegt werden, wird im Abschnitt "Hinweise" des Themas angegeben, das den Member in den Namespaces Microsoft.Office.InfoPath und Microsoft.Office.Interop.InfoPath.SemiTrust dokumentiert.

Sicherheitsebenen für den InfoPath-Domänenzugriff

Zusammen mit den Objektmodell-Sicherheitsebenen, die vom COM-Server erzwungen werden, der von der InfoPath-Anwendung verfügbar gemacht wird, werden von InfoPath drei Sicherheitsebenen definiert, deren Anwendung vom Speicherort der Formularvorlage, der Bereitstellungsart des Formulars und den im Entwurfsmodus konfigurierten Einstellungen abhängt. In der folgenden Tabelle sind diese drei Sicherheitsebenen definiert.

Domänenzugriffs-Sicherheitsebene Beschreibung

Eingeschränkt

Außerhalb der Formularvorlage ist keine Kommunikation zulässig. Diese Sicherheitsebene soll verhindern, dass gefährliche Formulare Daten von Ihrem Computer an gefährliche Angreifer übertragen. Bei der Ausführung in diesem Sicherheitsmodus funktionieren die folgenden Features nicht: der benutzerdefinierte Aufgabenbereich, Datenverbindungen (außer dem Senden von E-Mails), ActiveX-Steuerelemente, der Formularcode mit verwaltetem Code, Rollen und der Workflow. Formularvorlagen mit verwaltetem Code können nicht in der eingeschränkten Domäne ausgeführt werden. Wenn für eine Formularvorlage mit verwaltetem Code die Einstellung Sicherheitsstufe automatisch ermitteln in der Kategorie Sicherheit und Vertrauensstellung im Dialogfeld Formularoptionen festgelegt ist, ist für die Formularvorlage immer mindestens die Domänensicherheitsebene für den Zugriff erforderlich, um Code auszuführen.

HinweisWichtig:
Die Assembly mit verwaltetem Code, die für eine Formularvorlage mit verwaltetem Code erstellt wurde, wird nicht geladen oder ausgeführt, wenn ein Formular aus einer eingeschränkten Domäne geöffnet wird, z. B. aus einem InfoPath-Formular, das als E-Mail-Anlage gesendet wurde. In Formularvorlagen, die Sie als E-Mail-Anlage bereitstellen möchten, müssen die oben aufgeführten Features unterdrückt werden, und wenn die Formularvorlage Formularcode enthält, muss der Formularcode in JScript oder VBScript implementiert werden. Außerdem müssen Objektmodellmember mit der Sicherheitsebene 0 (null) verwendet werden.

Domäne

Beschränkt ein Formular anhand seines Speicherorts in einer der Sicherheitszonen, die von Microsoft Internet Explorer definiert wurden. Wenn sich das Formular z. B. in der Zone "Lokales Intranet" befindet, ist die Kommunikation mit anderen Daten innerhalb der eigenen Domäne zulässig. Das Abrufen von Daten aus anderen Domänen ist jedoch nicht zulässig. Durch den Speicherort in einer Sicherheitszone von Microsoft Internet Explorer wird außerdem festgelegt, ob ActiveX-Steuerelemente, die für Skripts als unsicher markiert sind, ausgeführt werden dürfen.

Voll vertrauenswürdig

Ermöglicht das Ausführen eines Formulars mit vollständiger Vertrauenswürdigkeit auf dem Computer, auf dem das Formular verwendet wird. Diese Sicherheitsebene kann nur beim Arbeiten mit einem Formular verwendet werden, das digital mit einer Signatur signiert wurde, die mit einem vertrauenswürdigen Stammherausgeber auf Ihrem Computer übereinstimmt, oder durch Erstellen eines Installationsprogramms, mit dem das Formular installiert und für das requireFullTrust-Attribut des xDocumentClass-Elements der Wert "yes" in der Formulardefinitionsdatei (XSF) festgelegt wird. Durch Verwenden dieser Einstellung kann das Formular auf Objektmodellaufrufe zugreifen, für die die Objektmodell-Sicherheitsebene 3 erforderlich ist, z. B. Eigenschaften und Methoden, die auf das Dateisystem zugreifen. Sie können außerdem bestimmte Sicherheitsaufforderungen deaktivieren, die bei der Ausführung auf einer restriktiveren Sicherheitsebene angezeigt werden.

Standardmäßig ist ein InfoPath-Formular so konfiguriert, dass automatisch entweder die eingeschränkte Sicherheitsebene oder die Domänensicherheitsebene ausgewählt wird. Dies hängt von den in der Formularvorlage verwendeten Features ab sowie vom Ort und von der Art der Bereitstellung der Formularvorlage. So wird z. B. für eine Formularvorlage, die als E-Mail-Anlage bereitgestellt wird, automatisch die eingeschränkte Sicherheitsebene konfiguriert. Die Sicherheitseinstellung ist immer so restriktiv wie möglich, beginnend bei eingeschränkt, um einen umfangreicheren Schutz für Sie und Ihre Daten sicherzustellen. Wenn eine Formularvorlage, die verwalteten Code enthält, so festgelegt wird, dass die Sicherheitsebene automatisch ausgewählt wird, erfordert die Formularvorlage immer mindestens die Domänensicherheitsebene für den Domänenzugriff, bevor Code ausgeführt werden kann. Sie können diese Einstellung zur Entwurfszeit manuell überschreiben, um eine für das Formular besser geeignete Sicherheitsebene auszuwählen, indem Sie das folgende Verfahren verwenden.

Angeben der Sicherheitsebene eines Formulars

  1. Wählen Sie im Menü Extras die Option Formularoptionen aus.

  2. Klicken Sie im Dialogfeld Formularoptionen auf die Registerkarte Sicherheit.

  3. Deaktivieren Sie das Kontrollkästchen Sicherheitsstufe automatisch abhängig vom Entwurf des Formulars ermitteln.

  4. Wählen Sie die gewünschte Sicherheitsebene aus.

Hinweise

  • Wenn Sie für eine Formularvorlage mit verwaltetem Code die Sicherheitsebene Eingeschränkt auswählen, wird der Code hinter dem Formular nicht geladen oder ausgeführt, unabhängig von den im Formularcode verwendeten Objektmodellmembern. Diese Sicherheitsebene wurde hauptsächlich für InfoPath-Formulare entwickelt, die mithilfe von E-Mail bereitgestellt werden.

  • Wenn Sie die Sicherheitsebene Voll vertrauenswürdig auswählen, müssen Sie das Formular digital signieren oder installieren und registrieren. Weitere Informationen finden Sie unter Vorgehensweise: Bereitstellen von InfoPath-Projekten.

Die folgende Tabelle enthält eine Zusammenfassung des InfoPath-Sicherheitsmodells. In der ersten Spalte ist die Ebene aufgeführt, die für das Formular angegeben oder erforderlich ist. In der zweiten und dritten Spalte ist angegeben, ob das Formular über einen URN- oder URL-Bezeichner für den Speicherort verfügt. In den verbleibenden Spalten wird angegeben, was ausgeführt werden darf. Weitere Informationen zu Bereitstellungsszenarien und Berechtigungssätzen für Formularvorlagen mit verwaltetem Code finden Sie unter "Sicherheitsfeatures für den Common Language Runtime-Codezugriff" weiter unten in diesem Thema.

Für das Formular erforderliche Ebene Hat URN-Bezeichner Hat URL-Bezeichner ActiveX als unsicher für Skripts markiert Domänenübergreifender Zugriff Verwalteter Code Objektmodellsicherheit

Eingeschränkt

X

Kein ActiveX

Fehler

Formular wird geladen, aber verwalteter Code wird nicht ausgeführt

0

Domäne (Internet Explorer-Zone Eingeschränkte Sites)

Wird nicht ausgeführt

Wird nicht ausgeführt

Wird nicht ausgeführt

Wird nicht ausgeführt

Wird nicht ausgeführt

Wird nicht ausgeführt

Domäne (Internet Explorer-Zone Internet)

X

Fehler

Fehler

Wird nicht ausgeführt

0

Domäne (Internet Explorer-Zone für Lokales Intranet)

X

Fehler

Eingabeaufforderung

Verwalteter Code wird mit Berechtigungen für Lokales Intranet ausgeführt.

2

Domäne (Internet Explorer-Zone Vertrauenswürdige Sites)

X

Eingabeaufforderung

OK

Managed code runs with Internet permissions. Cross-domain access is allowed. Note that even though the form is in the Trusted sites zone, Internet zone permissions are applied.

2

Domäne (Internet Explorer-Zone Lokaler Computer)

X

X

Eingabeaufforderung

Fehler

Verwalteter Code wird mit Berechtigungen für Lokales Intranet ausgeführt.

2

Voll vertrauenswürdig

X

X

OK

OK

Voll vertrauenswürdig

3

Wichtig

Bei den oben genannten Beschreibungen in den Spalten "ActiveX als unsicher für Skripts markiert" und "Domänenübergreifender Zugriff" wird von den Standardsicherheitseinstellungen für Microsoft Internet Explorer ausgegangen. Wenn ein Benutzer die Sicherheitseinstellungen ändert, ist das Verhalten von InfoPath entsprechend. Wenn z. B. in der Zone Lokales Intranet für Auf Datenquellen über Domänengrenzen hinweg zugreifen die Einstellung Aktivieren festgelegt ist, werden Benutzer nicht aufgefordert, den domänenübergreifenden Zugriff gemäß Beschreibung in der Tabelle zuzulassen.

Sicherheitsfeatures für den Common Language Runtime-Codezugriff

Beim Kompilieren einer InfoPath-Formularvorlage mit verwaltetem Code wird eine private Assembly mit verwaltetem Code erstellt, in der die Implementierung der Formularcodelogik enthalten ist.

In .NET Framework hat eine Assembly mit verwaltetem Code standardmäßig beim Ausführen auf dem lokalen Computer die Berechtigung "Voll vertrauenswürdig". Beim Ausführen im Intranet wird die Berechtigung "Voll vertrauenswürdig" nicht gewährt. Von InfoPath wird die folgende Sicherheitsarchitektur implementiert, um eine besser abgestimmte Steuerung über Sicherheitsrichtlinien und die Option zum Ausführen von InfoPath-Formularvorlagen mit verwaltetem Code als voll vertrauenswürdige Formulare aus dem Intranet bereitzustellen.

  • Die InfoPath-Anwendung hostet die .NET Framework Common Language Runtime (CLR).

  • In der von InfoPath gehosteten CLR wird jede Formularvorlage mit verwaltetem Code in einer getrennten Anwendungsdomäne ausgeführt. Dabei handelt es sich um eine Umgebung, die Isolation, Entladung und Sicherheitsbegrenzungen zum Ausführen von verwaltetem Code bereitstellt.

  • InfoPath legt für die Anwendungsdomäne eine Standardsicherheitsrichtlinie fest, je nach Vertrauensebene, die der Formularvorlage und dem URL des Speicherorts zugeordnet ist.

  • Standardmäßig erhält eine Formularvorlage mit verwaltetem Code, die auf dem lokalen Computer ausgeführt wird (Codegruppe "Zone des lokalen Computers"), eine niedrigere Berechtigungsebene als "Voll vertrauenswürdig" (Berechtigungssatz "Zone für lokales Intranet"). Für die Berechtigung "Voll vertrauenswürdig" muss das Formular mit einem vertrauenswürdigen Zertifikat digital signiert oder registriert werden.

Durch den standardmäßigen Sicherheitsrichtliniensatz für die Anwendungsdomäne einer Formularvorlage mit verwaltetem Code wird sichergestellt, dass die Sicherheitsebenen für den InfoPath-Domänenzugriff sowie zusätzliche .NET-Sicherheitseinschränkungen erzwungen werden. Das InfoPath-Sicherheitssystem erkennt eine Codegruppe für die .NET-Codezugriffssicherheit namens "InfoPath-Formularvorlagen", um zusätzliche Flexibilität bereitzustellen. Wenn diese Codegruppe auf dem Computer eines Benutzers vorhanden ist, werden ihre Sicherheitskonfiguration und die Sicherheitskonfigurationen ggf. vorhandener untergeordneter Codegruppen auf die Anwendungsdomäne angewendet.

Wichtig

  • Die Codegruppe "InfoPath-Formularvorlagen" wird nur auf die Formularcodeassembly mit verwaltetem Code angewendet. Daher verursachen Aufrufe im Formularcode für Objektmodellmember der Sicherheitsebene 3 weiterhin Fehler, wenn Sie Infopath-Formularcode mit verwaltetem Code die Berechtigung "Voll vertrauenswürdig" gewähren, aber die Formularvorlage nicht installiert und registriert (bzw. digital signiert) haben (wodurch die gesamte Formularvorlage voll vertrauenswürdig wird).

  • Wenn Sie auf eine Assembly verweisen oder sie explizit laden (Assembly.Load), die mit einem eingeschränkten Berechtigungssatz konfiguriert ist, wobei mithilfe der Beweise "Hash", "Starker Name" oder "Herausgeber" die Mitgliedschaftsbedingung in einem Formularvorlagenprojekt bestimmt wird, wird die Assembly trotzdem geladen und von der Formularvorlage ausgeführt.

Weitere Informationen zum Erstellen und Konfigurieren der Codegruppe "InfoPath-Formularvorlagen" finden Sie unter Vorgehensweise: Konfigurieren von Sicherheitseinstellungen für Formularvorlagen mit verwaltetem Code.

Die folgende Tabelle enthält eine Zusammenfassung der Bereitstellungsszenarien und Berechtigungssätze, die auf Formularvorlagen mit verwaltetem Code angewendet werden.

Bereitstellungsszenario Berechtigungssatz Hinweise

Die Formularvorlage wird auf dem lokalen Computer veröffentlicht, und der Entwickler verwendet Visual Studio, um Formularcode zu schreiben und zu debuggen.

Berechtigungssatz "Lokales Intranet".

Assemblys, die im globalen Assemblycache (GAC) installiert und mit dem AllowPartiallyTrustedCallersAttribute-Attribut markiert sind, wird die Berechtigung "Voll vertrauenswürdig" gewährt.

Standardmäßig wird Formularvorlagen, die vom lokalen Computer ausgeführt werden, nicht die Berechtigung "Voll vertrauenswürdig" gewährt. Beim Entwickeln von Formularvorlagen, die Features und Aufrufe an Objektmodellmember verwenden, für die die Berechtigung "Voll vertrauenswürdig" erforderlich ist, können Sie das Verfahren verwenden, das unter Vorgehensweise: Anzeigen einer Vorschau und Debuggen von Formularvorlagen mit verwaltetem Code, die vollständig vertrauenswürdig sein müssen beschrieben ist.

Die Formularvorlage wird auf dem lokalen Computer veröffentlicht und verweist auf eine benutzerdefinierte Assembly, für die die Berechtigung "Voll vertrauenswürdig" auf dem lokalen Computer erforderlich ist.

Berechtigungssatz "Lokales Intranet".

Assemblys, die im globalen Assemblycache (GAC) installiert und mit dem AllowPartiallyTrustedCallersAttribute-Attribut markiert sind, wird die Berechtigung "Voll vertrauenswürdig" gewährt. Der benutzerdefinierten Assembly wird der Berechtigungssatz "Lokales Intranet" gewährt.

Für den Verweis auf externe Assemblys zur Verwendung im Code der Formularvorlage muss der Entwickler die Codegruppe "InfoPath-Formularvorlagen" verwenden, um der externen Assembly, auf die im Code der Formularvorlage verwiesen wird, den vollständigen Zugriff (oder den entsprechenden Berechtigungssatz) zu gewähren. InfoPath trifft keine Annahmen über andere externe Assemblys als die, die im globalen Assemblycache (GAC) installiert sind. Der Entwickler muss der Assembly explizit die erforderlichen Berechtigungen mithilfe der Codegruppe "InfoPath-Formularvorlagen" gewähren, auch wenn die Assembly bereits durch Berechtigungen vertrauenswürdig gemacht wurde, die in der Codegruppe "Zone des lokalen Computers" gewährt wurden.

Die Formularvorlage wird an einem freigegebenen Speicherort im lokalen Intranet veröffentlicht, z. B. auf einer Dateifreigabe, in einer SharePoint-Formularbibliothek oder auf einem Webserver.

Berechtigungssatz "Lokales Intranet".

Assemblys, die im globalen Assemblycache (GAC) installiert und mit dem AllowPartiallyTrustedCallersAttribute-Attribut markiert sind, wird die Berechtigung "Voll vertrauenswürdig" gewährt.

Die Formularvorlage wird an einem freigegebenen Speicherort im lokalen Intranet veröffentlicht, der in Internet Explorer als vertrauenswürdige Website definiert ist, z. B. auf einer Dateifreigabe, in einer SharePoint-Formularbibliothek oder auf einem Webserver.

Berechtigungssatz "Internet".

Von Microsoft und ECMA signierten Assemblys wird die Berechtigung "Voll vertrauenswürdig" gewährt.

Durch die CLR-Codezugriffssicherheit wird der Berechtigungssatz "Internet" nur für Websites gewährt, die in Internet Explorer als vertrauenswürdige Websites definiert sind. InfoPath berücksichtigt diese Richtlinie. Möglicherweise wird von einer InfoPath-Formularvorlage Skript für Formularcode nicht verwendet, da diese beim Veröffentlichen in einer Zone vertrauenswürdiger Websites eine höhere Berechtigungsebene erhält.

Die Formularvorlage wird von einem Speicherort im Internet gedownloadet oder kopiert.

Standardmäßig keine. Die Assembly mit verwaltetem Code für die Formularvorlage wird nicht geladen und nicht ausgeführt.

Siehe auch

Aufgaben

Vorgehensweise: Konfigurieren von Sicherheitseinstellungen für Formularvorlagen mit verwaltetem Code

Konzepte

Vorgehensweise: Anzeigen einer Vorschau und Debuggen von Formularvorlagen mit verwaltetem Code, die vollständig vertrauenswürdig sein müssen