Condividi tramite


Informazioni sulle DLL di amministrazione RAS

La DLL di amministrazione RAS esporta funzioni chiamate dal server RAS ogni volta che un utente tenta di connettersi o disconnettersi. Ecco alcuni degli usi possibili per una DLL di amministrazione RAS:

  • Decidere se consentire a un utente di connettersi al server. La DLL di amministrazione può fornire un controllo di sicurezza oltre all'autenticazione utente RAS standard.
  • Registrare il tempo di connessione e disconnessione da ogni utente dal server. Ciò può essere utile per scopi di fatturazione o controllo.
  • Assegnare un indirizzo IP a ogni utente. Questa funzionalità è utile per la sicurezza, perché questa funzionalità viene usata per eseguire il mapping della connessione di un utente a un computer specifico.

La posizione della DLL di amministrazione RAS è specificata nel Registro di sistema; vedere Installazione del Registro di sistema DLL di amministrazione RAS.

RAS supporta più DLL di amministrazione. Il Registro di sistema supporta più percorsi DLL. RAS chiama le funzioni nelle DLL nell'ordine in cui le DLL sono elencate nel Registro di sistema; vedere Installazione del Registro di sistema DLL di amministrazione RAS.

Windows 2000 Server: RAS non supporta più DLL.

Una DLL di amministrazione RAS deve implementare ed esportare tutte le funzioni seguenti:

MprAdminAcceptNewLink

MprAdminInitializeDll

MprAdminLinkHangupNotification

MprAdminTerminateDll

Inoltre, la DLL di amministrazione RAS deve implementare ed esportare entrambi

MprAdminAcceptNewConnection e

MprAdminConnectionHangupNotification

oppure

MprAdminAcceptNewConnection2 e

MprAdminConnectionHangupNotification2

Se tutte le funzioni necessarie non vengono implementate, RAS non viene avviata.

Windows 2000 Server: Una DLL di amministrazione deve implementare le funzioni MprAdminGetIpAddressForUser e MprAdminReleaseIpAddress . Se la DLL implementa una di queste funzioni, deve implementare anche l'altra.

RAS chiama la funzione MprAdminInitializeDll quando il servizio routing e accesso remoto viene avviato per la prima volta. La funzione MprAdminInitializeDll offre un'opportunità per la DLL di amministrazione di eseguire qualsiasi inizializzazione necessaria. Analogamente, RAS chiama il servizio MprAdminTerminateDll quando il servizio Routing e Accesso remoto viene arrestato. Questa funzione consente alla DLL di amministrazione di eseguire qualsiasi pulizia necessaria prima di uscire.

Le funzioni MprAdminAcceptNewConnection e MprAdminConnectionHangupNotification consentono alla DLL di controllare le connessioni utente al server. Un server RAS chiama la funzione MprAdminAcceptNewConnection ogni volta che un utente tenta di connettersi. Questa funzione consente di impedire all'utente di connettersi. La funzione MprAdminAcceptNewConnection può anche generare voci di log per la fatturazione o il controllo. Quando l'utente si disconnette, il server RAS chiama la funzione MprAdminConnectionHangupNotification , che può registrare il tempo in cui l'utente si disconnette.

Le funzioni MprAdminAcceptNewConnection2 e MprAdminConnectionHangupNotification2 sono simili a MprAdminAcceptNewConnection e MprAdminConnectionHangupNotification. Tuttavia, quando RAS chiama le funzioni MprAdminAcceptNewConnection2 e MprAdminConnectionHangupNotification2 , RAS passa un parametro aggiuntivo di tipo RAS_CONNECTION_2.

RAS supporta più DLL di amministrazione. L'utente di accesso remoto può connettersi solo se l'implementazione della funzione MprAdminAcceptNewConnection o MprAdminAcceptNewConnection2 in ognuna delle DLL accetta la connessione. In altre parole, ogni DLL deve accettare la connessione per consentire all'utente di connettersi.

È possibile che una singola connessione RAS usi più collegamenti durante la connessione a un server RAS. Le funzioni MprAdminAcceptNewLink e MprAdminLinkHangupNotification consentono alla DLL di amministrazione di gestire singoli collegamenti in una connessione. RAS chiama MprAdminAcceptNewLink ogni volta che viene stabilito un nuovo collegamento per una connessione. Poiché tutte le connessioni comportano almeno un collegamento, RAS chiama sempre MprAdminAcceptNewLink una volta subito dopo MprAdminAcceptNewConnection o MprAdminAcceptNewConnection2, purché MprAdminAcceptNewConnection o MprAdminAcceptNewConnection2 accetti la connessione. RAS chiama MprAdminLinkHangupNotification ogni volta che viene arrestato un collegamento per una connessione.

Poiché RAS supporta più DLL di amministrazione, l'utente di accesso remoto può connettersi solo se l'implementazione della funzione MprAdminAcceptNewLink in ognuna delle DLL accetta la connessione. In altre parole, ogni DLL deve accettare il collegamento per poter stabilire il collegamento.

Dopo che il server RAS ha autenticato un utente, chiama la funzione MprAdminGetIpAddressForUser per ottenere un indirizzo IP per il client remoto. Questa funzione fornisce uno schema alternativo per il mapping di un indirizzo IP a un utente con accesso esterno. Se MprAdminGetIpAddressForUser non è implementato, un server RAS associa l'utente remoto a un indirizzo IP selezionato da un pool statico di indirizzi IP o uno selezionato da un server DHCP (Dynamic Host Configuration Protocol). La funzione MprAdminGetIpAddressForUser consente alla DLL di eseguire l'override di questo indirizzo IP predefinito e specificare un indirizzo IP specifico per ogni utente. La funzione MprAdminGetIpAddressForUser può impostare un flag che causa la chiamata di RAS alla funzione MprAdminReleaseIpAddress quando l'utente si disconnette. La DLL può quindi usare MprAdminReleaseIpAddress per aggiornare il mapping degli indirizzi IP da utente a IP.

RAS supporta più DLL di amministrazione, ma chiama le funzioni MprAdminGetIpAddressForUser e MprAdminReleaseIpAddress solo nella prima DLL che implementa ed esporta le funzioni. RAS ignora le implementazioni di queste funzioni negli altri DLL. RAS controlla le DLL per queste funzioni nell'ordine in cui sono elencati nel Registro di sistema.

RAS serializza le chiamate nella DLL di amministrazione. Una chiamata a una delle funzioni della DLL per un determinato client RAS non prefissi una chiamata a tale funzione per un client RAS diverso; RAS non chiama la funzione per l'altro client fino al completamento della chiamata iniziale. Inoltre, la serializzazione si estende a determinati gruppi di funzioni. Le funzioni di indirizzo IP vengono serializzate come gruppo; una chiamata a MprAdminGetIpAddressForUser o MprAdminReleaseIpAddress blocca le chiamate in entrambe le funzioni finché non viene restituita la chiamata iniziale. MprAdminAcceptNewConnection e MprAdminConnectionHangupNotification vengono serializzati anche come gruppo.

RAS esegue le funzioni che assegnano indirizzi IP in un unico processo; le funzioni per le notifiche di connessione e disconnessione vengono eseguite in un altro processo. Di conseguenza, la DLL non dipende dai dati condivisi tra questi due set di funzioni.

Non chiamare funzioni di amministrazione RAS o funzioni di amministrazione utente RAS dall'interno di una funzione di callout. Le chiamate a queste funzioni non verranno restituite quando effettuate dall'interno di una funzione di callout.

Il server RAS registra un errore nel registro eventi di sistema se si verifica un errore quando tenta di caricare una DLL di amministrazione RAS o quando si chiama una delle funzioni della DLL. Ciò può verificarsi, ad esempio, se la DLL ha specificato il nome errato per una funzione esportata o se non includeva il nome della funzione nel file DEF. La voce nel registro eventi indica il motivo dell'errore.

Windows 2000/NT: Le DLL di amministrazione multiple non sono supportate.