Freigeben über


Sitzungs-zu-Sitzung-Aktivierung mit einem Sitzungsmoniker

Die Aktivierung von Sitzung zu Sitzung (auch als sitzungsübergreifende Aktivierung bezeichnet) ermöglicht es einem Clientprozess, einen lokalen Serverprozess in einer angegebenen Sitzung zu starten (zu aktivieren). Dieses Feature ist für Anwendungen verfügbar, die für die Ausführung im Sicherheitskontext des interaktiven Benutzers konfiguriert sind, der auch als Objektaktivierungsmodus "RunAs Interactive User" bezeichnet wird. Weitere Informationen zu Sicherheitskontexten finden Sie unter Der Sicherheitskontext des Clients.

Distributed COM (DCOM) ermöglicht die Objektaktivierung pro Sitzung mithilfe eines vom System bereitgestellten Sitzungsmonikers. Andere vom System bereitgestellte Moniker umfassen Dateimoniker, Elementmoniker, generische zusammengesetzte Moniker, Antimoniker, Zeigermoniker und URL-Moniker.

Um den Sitzungsmoniker verwenden zu können, muss die DCOM-Anwendung so festgelegt werden, dass sie als interaktiver Benutzer ausgeführt wird. Dies kann mithilfe des Tools "Komponentendiensteverwaltung" festgelegt werden, indem Sie die Eigenschaften der DCOM-Anwendung anzeigen und auf der Registerkarte Identität die Option Der interaktive Benutzer auswählen. Weitere Informationen zu den möglichen Sicherheitsrisiken im Zusammenhang mit dem Festlegen einer DCOM-Anwendung zur Ausführung als interaktiver Benutzer in einer Remotedesktopdienste-Umgebung 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 Benutzertyps zum Ausführen der Anwendung finden Sie in der COM-Dokumentation im Platform SDK.

Um einen Sitzungsmoniker zu erstellen, müssen Sie die Sitzungs-ID der Remotedesktopdienste-Sitzung mit einem Klassenmoniker zusammenstellen, der die Klassen-ID des Prozessservers angibt.

So erstellen Sie einen Sitzungsmoniker

  1. Präfixieren Sie den Anzeigenamen des Klassenmonikers mit dem Anzeigenamen des Sitzungsmonikers, indem Sie die folgende Syntax verwenden:

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

    wobei Ziffern die Sitzungs-ID der Sitzung darstellt, in der der Serverprozess gestartet wird, und wobei die 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 unabhängig von der Sitzungs-ID an die derzeit aktive physische Konsolensitzung sendet:

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

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

Ein Codebeispiel, das das Aktivieren eines lokalen Serverprozesses in einer angegebenen Sitzung veranschaulicht, finden Sie unter Verwenden eines Sitzungsmonikers.

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

Hinweis

Prozesse, die sitzungsübergreifend erstellt werden, weisen eine Obergrenze für die Größe des Umgebungsblocks auf. Dieser Grenzwert liegt bei etwa 4 KB, kann jedoch größer oder kleiner sein, je nachdem, welche weiteren Informationen zum Erstellen des Prozesses erforderlich sind (z. B. Dateinamen, Verzeichnisse und Parameter für den neuen Prozess).