Freigeben über


Session-to-Session-Aktivierung mit einem Session Moniker

Die Aktivierung von Sitzungen (auch als sitzungsübergreifende Aktivierung bezeichnet) ermöglicht es einem Clientprozess, einen lokalen Serverprozess in einer bestimmten Sitzung zu starten (zu aktivieren). Dieses Feature steht für Anwendungen zur Verfügung, die für die Ausführung im Sicherheitskontext des interaktiven Benutzers konfiguriert sind, auch als "RunAs Interactive User"-Objektaktivierungsmodus bezeichnet. Weitere Informationen zu Sicherheitskontexten finden Sie unter Security Contextdes Clients.

Distributed COM (DCOM) ermöglicht die Objektaktivierung pro Sitzung mithilfe eines vom System bereitgestellten Session Moniker. Andere vom System bereitgestellte Moniker sind Dateimoniker, Item Moniker, generische zusammengesetzte Moniker, Antimoniker, Zeiger monikerund URL Moniker.

Um den Sitzungsmoniker verwenden zu können, muss die DCOM-Anwendung so festgelegt sein, dass sie als interaktiver Benutzer ausgeführt wird. Dies kann mithilfe des Verwaltungstools für Komponentendienste festgelegt werden, die Eigenschaften der DCOM-Anwendung anzeigen und Der interaktive Benutzer auf der Registerkarte Identität auswählen. Weitere Informationen zu den möglichen Sicherheitsrisiken im Zusammenhang mit dem Festlegen einer DCOM-Anwendung, die als interaktiver Benutzer in einer Remotedesktopdienste-Umgebung ausgeführt werden soll, finden Sie im Abschnitt "Application Identity (COM)" der COM-Dokumentation im Platform Software Development Kit (SDK).

Wenn ein anderer Benutzertyp zum Ausführen der Anwendung ausgewählt ist, wird der Sitzungsmoniker von der Anwendung ignoriert. Der Sitzungsmoniker wird auch von COM+-Serveranwendungen ignoriert. Weitere Informationen zu anderen Methoden zum Auswählen des Typs des Benutzers zum Ausführen der Anwendung finden Sie in der COM-Dokumentation im Platform SDK.

Zum Erstellen eines Sitzungsmonikers müssen Sie die Sitzungs-ID der Remotedesktopdienste-Sitzung mit einem Klassenmoniker erstellen, der die Klassen-ID des Prozessservers angibt.

So erstellen Sie einen Sitzungsmoniker

  1. Präfix des Anzeigenamens der Klasse moniker mit dem Anzeigenamen des Sitzungsmonikers mithilfe der folgenden Syntax:

    "Session:[digits]!clsid:[class id]"
    

    wobei Ziffern die Sitzungs-ID der Sitzung darstellt, auf der der Serverprozess gestartet wird, und wobei Klassen-ID die Klassen-ID des Servers darstellt. Beachten Sie, dass die Sitzungs-ID eine Basis-10-Nummer ist.

    Bei Computern, auf denen Windows XP oder höher ausgeführt wird, führt die Verwendung der folgenden Syntax dazu, dass COM die Aktivierung an die derzeit aktive physische Konsolensitzung sendet, unabhängig von der Sitzungs-ID:

    "Session:Console!clsid:[class id]"
    
  2. Nachdem Sie den Sitzungsmoniker erstellt haben, können Sie das Ergebnis entweder an die funktion MkParseDisplayName oder die MkParseDisplayNameEx--Funktion übergeben.

Sie können einen Session-Moniker auf die gleiche Weise wie jeden anderen Moniker verwenden.

Ein Codebeispiel, das veranschaulicht, wie ein lokaler Serverprozess in einer angegebenen Sitzung aktiviert wird, finden Sie unter Using a Session Moniker.

Weitere Informationen zur Objektaktivierung, vom System bereitgestellten Monikern und Klassenmonikern finden Sie in der COM-Dokumentation im Platform SDK.

Anmerkung

Prozesse, die über Sitzungen hinweg erstellt werden, haben eine obere Grenze für die Größe des Umgebungsblocks. Dieser Grenzwert beträgt etwa 4 KB, kann jedoch je nach den erforderlichen anderen Informationen zum Erstellen des Prozesses größer oder kleiner sein (z. B. Dateinamen, Verzeichnisse und Parameter für den neuen Prozess).