Arbeiten mit Einstellungen für die Verwaltung von Informationsrechten

In Microsoft InfoPath stehen zwei Arten von IRM-Einstellungen (Information Rights Management) zur Verfügung: eine zum Schützen des Zugriffs auf InfoPath-Formularvorlagen und eine zum Steuern des Zugriffs auf und Aktionen für Formulardaten, die in ausgefüllten Formularen enthalten sind.

Hinweis

Das Einschränken der Berechtigung ist nur für Formularvorlagen verfügbar, die mit dem InfoPath-Editor kompatibel sind. Von browserkompatiblen Formularvorlagen wird IRM nicht unterstützt.

Hinzufügen des Befehls "Anmeldeinformationen verwalten" zur Symbolleiste für den Schnellzugriff

Der Befehl Anmeldeinformationen verwalten , der zum Arbeiten mit IRM-Einstellungen beim Entwerfen einer Formularvorlage verwendet wird, ist standardmäßig nicht verfügbar. Führen Sie die folgenden Schritte aus, um sie der Symbolleiste für den Schnellzugriff hinzuzufügen.

Hinzufügen des Befehls "Anmeldeinformationen verwalten" zur Symbolleiste für den Schnellzugriff

  1. Klicken Sie auf den Pfeil am rechten Ende der Symbolleiste für den Schnellzugriff , um das Menü Symbolleiste für den Schnellzugriff anpassen nach unten zu ziehen, und klicken Sie dann auf Weitere Befehle.

  2. Wählen Sie in der Liste Befehle auswählen die Option Alle Befehle aus.

  3. Verschieben Sie den Fensterinhalt der Liste nach unten zu Anmeldeinformationen verwalten, und klicken Sie dann auf Hinzufügen.

  4. Klicken Sie auf OK.

Weitere Informationen zum Verwenden des Befehls Anmeldeinformationen verwalten und des Dialogfelds Berechtigung in InfoPath finden Sie im Thema zum Erstellen einer Formularvorlage mit eingeschränkter Berechtigung in der InfoPath-Hilfe.

Das IRM-Objektmodell

Verwenden Sie die Permission-Klasse , um auf die UserPermissionCollection - und IRM-Berechtigungseinstellungen zuzugreifen, die auf ein Formular angewendet werden können. Verwenden Sie die Permission-Eigenschaft der XmlForm-Klasse, um auf das einer Formularvorlage zugeordnete Permission-Objekt zuzugreifen. Das zurückgegebene Permission-Objekt bietet Zugriff auf die Auflistung von UserPermission-Objekten, die der Formularvorlage zugeordnet sind, und jedes Formular, das mit dieser Vorlage erstellt instance.

Das Permission-Objekt und seine Eigenschaften und Methoden sind unabhängig davon verfügbar, ob die Berechtigungen für die aktive Formularvorlage eingeschränkt sind oder nicht. Verwenden Sie die Enabled-Eigenschaft , um zu bestimmen, ob ein Formular über eingeschränkte Berechtigungen verfügt.

Berechtigungen für ein Formular werden auf eine der folgenden Arten mithilfe von Eigenschaften und Methoden der Permission-Klasse aktiviert:

Die Enabled-Eigenschaft ist auf true festgelegt.

Die DocumentAuthor-Eigenschaft ist festgelegt.

Die RequestPermissionUrl-Eigenschaft ist festgelegt.

Die StoreLicenses-Eigenschaft ist auf true oder false festgelegt.

Die ApplyPolicy-Methode wird aufgerufen.

Hinweis

Wenn der Client für die Windows-Rechteverwaltung nicht auf einem Benutzercomputer installiert ist, löst die Verwendung der Permission-Klasse eine Ausnahme aus.

Verwenden Sie die Klassen UserPermissionCollection und UserPermission, um programmgesteuert mit IRM-Einstellungen einzelner Benutzer in Formularen zu arbeiten.

Ein UserPermission-Objekt ordnet eine Berechtigungsgruppe für das aktuelle Formular mit einem einzelnen Benutzer und einem optionalen Ablaufdatum zu. Verwenden Sie die Add-Methode der UserPermissionCollection-Klasse , um einem Benutzer einen Berechtigungssatz für das aktuelle Formular hinzuzufügen und zu gewähren. Verwenden Sie die Remove-Methode der UserPermissionCollection-Klasse , um einen Benutzer und die Berechtigungen des Benutzers zu entfernen. Während einige Berechtigungen, die über die Benutzeroberfläche gewährt werden, auf alle Benutzer angewendet werden, z. B. Drucken und Ablaufdatum, können Sie die Klassen UserPermission und UserPermissionCollection verwenden, um die Berechtigungen auf einer benutzerbezogenen Basis mit benutzerbezogenem Ablaufdatum zuzuweisen. Mithilfe des Objektmodells können Entwickler Berechtigungseinstellungen in einem Formular auflisten und Funktionalität bereitstellen, die Formularbenutzern ermöglicht, dem Formular Berechtigungen hinzuzufügen, ohne den Aufgabenbereich Formularberechtigung oder das Dialogfeld Berechtigung zu verwenden.

Hinweis

Berechtigungen können nicht angewendet werden, wenn sich ein Formular im Vorschaumodus befindet. Aus diesem Grund sind alle Eigenschaften der Permission-Klasse schreibgeschützt, wenn die Vorschau für ein Formular angezeigt wird. Im Vorschaumodus gibt die Enabled-Eigenschaft immer false zurück, und wenn der Code versucht, diese Einstellung zu ändern, wird System.Runtime.InteropServices.COMException ausgelöst und der Fehler "Die Eigenschaft/Methode ist im Vorschaumodus nicht verfügbar" zurückgegeben. Auf ähnliche Weise geben die Methoden, die den Klassen UserPermission und UserPermissionCollection zugeordnet sind, diese Fehlermeldung zurück, wenn sie im Vorschaumodus verwendet werden.

Übersicht über die "Permission"-Klasse

Die UserPermissionCollection-Klasse stellt die folgenden Eigenschaften und eine Methode bereit.

Name Beschreibung
ApplyPolicy-Methode
Wendet eine Richtlinie auf das Formular mithilfe einer Richtlinienvorlagendatei an.
DocumentAuthor-Eigenschaft
Ruft den Autor des aktuellen Formulars als E-Mail-Adresse ab oder legt diese fest.
Enabled-Eigenschaft
Ruft ab, ob die durch das Permission-Objekt dargestellten Berechtigungseinstellungen für das aktuelle Formular aktiviert sind, oder legt diese Einstellung fest.
PermissionFromPolicy-Eigenschaft
Ruft ab, ob eine Berechtigungsrichtlinie auf dem aktuellen Formular angewendet wurde, oder legt diese Einstellung fest.
PolicyDescription-Eigenschaft
Ruft eine Beschreibung der Richtlinie ab, die auf dem aktuellen Formular angewendet wurde.
PolicyName-Eigenschaft
Ruft den Namen der Richtlinie ab, die auf dem aktuellen Formular angewendet wurde.
RequestPermissionUrl-Eigenschaft
Ruft die Datei, URL oder E-Mail-Adresse für Benutzer ab, die zusätzliche Berechtigungen für das aktuelle Formular benötigen, oder legt diese fest.
StoreLicenses-Eigenschaft
Ruft ab, ob die Benutzerlizenz zum Anzeigen des aktuellen Formulars zwischengespeichert werden soll, um die Offlineanzeige zuzulassen, wenn der Benutzer keine Verbindung zu einem Rechteverwaltungsserver herstellen kann, oder legt diese Einstellung fest.
UserPermissions-Eigenschaft
Ruft ein UserPermissionCollection-Objekt für das aktuelle Formular ab.

Übersicht über die "UserPermissionCollection"-Klasse

Die UserPermissionCollection-Klasse stellt die folgenden Eigenschaften und Methoden bereit.

Name Beschreibung
Methode hinzufügen (+3 Überladungen)
Fügt dem aktuellen Formular einen neuen Benutzer hinzu; optional können Berechtigungen und ein Ablaufdatum angegeben werden.
Remove-Methode
Entfernt das UserPermission-Objekt mit dem angegebenen UserId-Objekt aus der Auflistung.
RemoveAll-Methode
Entfernt alle UserPermission-Objekte aus der Auflistung.
Count-Eigenschaft
Ruft die Anzahl der UserPermission-Objekte in der Auflistung ab.
Item-Eigenschaft (+1 Überladung)
Ruft ein UserPermission-Objekt ab.

Übersicht über die "UserPermission"-Klasse

Die UserPermission-Klasse stellt die folgenden Eigenschaften und eine Methode bereit.

Name Beschreibung
Remove-Methode
Entfernt das aktuelle UserPermission-Objekt aus den Berechtigungen des Formulars.
ExpirationDate-Eigenschaft
Ruft das optionale Ablaufdatum für die Berechtigungen auf dem aktuellen Formular ab, das dem Benutzer zugeordnet ist, der einer Instanz der UserPermission-Klasse zugeordnet ist, oder legt es fest.
Berechtigungseigenschaft
Ruft einen Wert zur Darstellung der Berechtigungen auf dem aktuellen Formular ab, das dem Benutzer zugeordnet ist, der einer Instanz der UserPermission-Klasse zugeordnet ist, oder legt ihn fest.
UserId-Eigenschaft
Ruft die E-Mail-Adresse des Benutzers ab, dessen Berechtigungen für das aktuelle Formular durch das angegebene UserPermission-Objekt bestimmt werden.

Die "PermissionType"-Enumeration

Die Berechtigungen eines Benutzers werden mithilfe von PermissionType-Enumerationswerten festgelegt oder gelesen.

Name Beschreibung
PermissionType.Change
Ermöglicht Benutzern das Anzeigen, Bearbeiten, Kopieren und Speichern, jedoch nicht das Drucken eines Formulars. Entspricht einer Kombination der Read-, Edit-, Save- und Extract-Berechtigungen.
PermissionType.Edit
Ermöglicht dem Benutzer das Bearbeiten des Formulars.
PermissionType.Extract
Ermöglicht einem Benutzer, der über die Read-Berechtigung verfügt, das Kopieren der Formularinhalte.
PermissionType.FullControl
Ermöglicht dem Benutzer das Hinzufügen, Ändern oder Entfernen von Berechtigungen für andere Benutzer eines Formulars.
PermissionType.ObjectModel
Ermöglicht einem Benutzer über das zugehörige Objektmodell den programmgesteuerten Zugriff auf das Formulardokument. Benutzer, die nicht über die ObjectModel-Berechtigung verfügen, können das Objektmodell nicht verwenden, um ihre eigenen Berechtigungen festzulegen.
PermissionType.Print
Ermöglicht dem Benutzer das Drucken des Formulars.
PermissionType.Read
Ermöglicht dem Benutzer das Lesen (Anzeigen) des Formulars. (Die Read- und View-Berechtigungen sind äquivalent.)
PermissionType.Save
Ermöglicht dem Benutzer das Speichern des Formulars.
PermissionType.View
Ermöglicht dem Benutzer das Anzeigen (Lesen) des Formulars. (Die Read- und View-Berechtigungen sind äquivalent.)

Beispiel

Im folgenden Beispiel wird durch Klicken auf das Button-Steuerelement die UserPermissionsCollection für das aktuelle Formular abgerufen, ein Benutzer hinzugefügt und der Zugriffsebene Ändern zugewiesen und ein Ablaufdatum von zwei Tagen ab dem aktuellen Datum festgelegt.

public void CTRL1_Clicked(object sender, ClickedEventArgs e)
{
   string strExpirationDate = DateTime.Today.AddDays(2).ToString();
   DateTime dtExpirationDate = DateTime.Parse(strExpirationDate);
   this.Permission.UserPermissions.Add("someone@example.com", 
      PermissionType.Change, dtExpirationDate);
}
Public Sub CTRL1_Clicked(ByVal sender As Object, _
   ByVal e As ClickedEventArgs)
   Dim strExpirationDate As String = _
      DateTime.Today.AddDays(2).ToString()
   dtExpirationDate As DateTime = DateTime.Parse(strExpirationDate)
   Me.Permission.UserPermissions.Add("someone@example.com", _
      PermissionType.Change, dtExpirationDate)
End Sub