Vorgehensweise: Arbeiten mit IRM-Einstellungen
In Microsoft Office InfoPath 2007 sind zwei Typen von RIM-Einstellungen (Information Rights Management, Verwaltung von Informationsrechten) verfügbar: einer zum Schützen des Zugriffs auf InfoPath-Formularvorlagen und einer zum Steuern des Zugriffs auf und der Aktionen für Formulardaten, die in fertig gestellten Formularen enthalten sind. Klicken Sie im Menü Datei auf Anmeldeinformationen verwalten, um beim Entwerfen einer Formularvorlage mit diesen Einstellungen zu arbeiten. Klicken Sie im Menü Datei auf Berechtigung, und klicken Sie dann auf Anmeldeinformationen verwalten, um beim Ausfüllen eines Formulars mit diesen Einstellungen zu arbeiten. Weitere Informationen zum Verwenden des Dialogfelds Berechtigung in InfoPath finden Sie im Thema zum Erstellen einer Formularvorlage mit eingeschränkter Berechtigung in der InfoPath-Hilfe.
Hinweis
Das Einschränken der Berechtigung ist nur für Formularvorlagen verfügbar, die mit InfoPath kompatibel sind. Von browserkompatiblen Formularvorlagen wird IRM nicht unterstützt. Wenn beim Entwerfen einer Formularvorlage Anmeldeinformationen verwalten im Menü Datei nicht angezeigt wird, überprüfen Sie die Kompatibilitätseinstellungen.
Das IRM-Objektmodell
Verwenden Sie die Permission-Klasse, um auf 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 stellt den Zugriff auf die Auflistung von UserPermission-Objekten bereit, die der Formularvorlage zugeordnet sind, und auf alle Formularinstanzen, die mit dieser Vorlage erstellt wurden.
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. Mithilfe der Enabled-Eigenschaft können Sie bestimmen, ob ein Formular eingeschränkte Berechtigungen hat.
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 einen Benutzer hinzuzufügen und ihm eine Gruppe von Berechtigungen für das aktuelle Formular zu gewähren. Verwenden Sie die Remove-Methode der UserPermissionCollection-Klasse, um einen Benutzer und dessen Berechtigungen 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 ihn 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, den URL oder die E-Mail-Adresse ab, an die sich Benutzer wenden müssen, die zusätzliche Berechtigungen für das aktuelle Formular benötigen, oder legt sie 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 |
---|---|
Add-Methode (+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. |
Permission-Eigenschaft |
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 vom angegebenen 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 Steuerelement Schaltfläche das UserPermissionsCollection-Element für das aktuelle Formular abgerufen. Dann wird ein Benutzer hinzugefügt und der Change-Zugriffsebene 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