Share via


Attivazione da sessione a sessione con un moniker di sessione

L'attivazione da sessione a sessione (chiamata anche attivazione tra sessioni) consente a un processo client di avviare (attivare) un processo del server locale in una sessione specificata. Questa funzionalità è disponibile per le applicazioni configurate per l'esecuzione nel contesto di sicurezza dell'utente interattivo, noto anche come modalità di attivazione degli oggetti "RunAs Interactive User". Per altre informazioni sui contesti di sicurezza, vedere Contesto di sicurezza del client.

Distributed COM (DCOM) abilita l'attivazione di oggetti in base alla sessione usando un moniker di sessione fornito dal sistema. Altri moniker forniti dal sistema includono moniker di file, moniker di elementi, moniker compositi generici, anti-moniker, moniker puntatore e moniker URL.

Per poter usare il moniker di sessione, l'applicazione DCOM deve essere impostata per l'esecuzione come utente interattivo. Questa impostazione può essere impostata tramite lo strumento di amministrazione di Servizi componenti, visualizzando le proprietà dell'applicazione DCOM e selezionando L'utente interattivo nella scheda Identità . Per altre informazioni sui possibili rischi di sicurezza associati all'impostazione di un'applicazione DCOM da eseguire come utente interattivo in un ambiente Servizi Desktop remoto, vedere la sezione "Application Identity (COM)" della documentazione COM in Platform Software Development Kit (SDK).

Se viene selezionato un altro tipo di utente per eseguire l'applicazione, il moniker di sessione verrà ignorato dall'applicazione. Il moniker di sessione viene ignorato anche dalle applicazioni server COM+. Per altre informazioni su altri metodi per la selezione del tipo di utente per l'esecuzione dell'applicazione, vedere la documentazione COM in Platform SDK.

Per creare un moniker di sessione, è necessario comporre l'ID sessione della sessione di Servizi Desktop remoto con un moniker di classe che specifica l'ID classe del server di elaborazione.

Per creare un moniker di sessione

  1. Anteporre il nome visualizzato del moniker della classe con il nome visualizzato del moniker di sessione usando la sintassi seguente:

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

    dove cifre rappresenta l'ID sessione della sessione in cui verrà avviato il processo del server e dove ID classe rappresenta l'ID classe del server. Si noti che l'ID sessione è un numero di base 10.

    Per i computer che eseguono Windows XP o versioni successive, l'uso della sintassi seguente comporterà l'invio dell'attivazione alla sessione della console fisica attualmente attiva, indipendentemente dal relativo ID sessione:

    "Session:Console!clsid:[class id]"
    
  2. Dopo aver creato il moniker di sessione, è possibile passare il risultato alla funzione MkParseDisplayName o alla funzione MkParseDisplayNameEx .

È possibile usare un moniker di sessione nello stesso modo in cui si userebbe qualsiasi altro moniker.

Per un esempio di codice che illustra come attivare un processo del server locale in una sessione specificata, vedere Uso di un moniker di sessione.

Per altre informazioni sull'attivazione di oggetti, moniker forniti dal sistema e moniker di classe, vedere la documentazione COM in Platform SDK.

Nota

I processi creati tra le sessioni hanno un limite superiore per le dimensioni del blocco di ambiente. Questo limite è di circa 4 KB, ma può essere più grande o più piccolo a seconda delle altre informazioni necessarie per creare il processo (ad esempio nomi di file, directory e parametri per il nuovo processo).