Partager via


À propos des DLL d’administration RAS

La DLL d’administration RAS exporte les fonctions que le serveur RAS appelle chaque fois qu’un utilisateur tente de se connecter ou de se déconnecter. Voici quelques-unes des utilisations possibles d’une DLL d’administration RAS :

  • Décidez s’il faut autoriser un utilisateur à se connecter au serveur. La DLL d’administration peut fournir une case activée de sécurité en plus de l’authentification utilisateur RAS standard.
  • Enregistrez l’heure à laquelle chaque utilisateur se connecte au serveur et se déconnecte du serveur. Cela peut être utile à des fins de facturation ou d’audit.
  • Attribuez une adresse IP à chaque utilisateur. Cela est utile pour la sécurité, car cette fonctionnalité est utilisée pour mapper la connexion d’un utilisateur à un ordinateur spécifique.

L’emplacement de la DLL d’administration RAS est spécifié dans le Registre ; Consultez Configuration du Registre DE DLL d’administration RAS.

RAS prend en charge plusieurs DLL d’administration. Le Registre prend en charge plusieurs emplacements DLL. RAS appelle les fonctions dans les DLL dans l’ordre dans lequel les DLL sont répertoriées dans le Registre ; Consultez Configuration du Registre DE DLL d’administration RAS.

Windows 2000 Server : RAS ne prend pas en charge plusieurs DLL.

Une DLL d’administration RAS doit implémenter et exporter toutes les fonctions suivantes :

MprAdminAcceptNewLink

MprAdminInitializeDll

MprAdminLinkHangupNotification

MprAdminTerminateDll

En outre, la DLL d’administration RAS doit implémenter et exporter l’un ou l’autre

MprAdminAcceptNewConnection et

MprAdminConnectionHangupNotification

or

MprAdminAcceptNewConnection2 et

MprAdminConnectionHangupNotification2

Si toutes les fonctions requises ne sont pas implémentées, ras ne parvient pas à démarrer.

Windows 2000 Server : Une DLL d’administration doit implémenter les fonctions MprAdminGetIpAddressForUser et MprAdminReleaseIpAddress . Si la DLL implémente l’une de ces fonctions, elle doit également implémenter l’autre.

RAS appelle la fonction MprAdminInitializeDll lors du premier démarrage du service routage et d’accès à distance. La fonction MprAdminInitializeDll offre à la DLL d’administration la possibilité d’effectuer toute initialisation nécessaire. De même, RAS appelle le service MprAdminTerminateDll lorsque le service de routage et d’accès à distance s’arrête. Cette fonction permet à la DLL d’administration d’effectuer tout nettoyage nécessaire avant de quitter.

Les fonctions MprAdminAcceptNewConnection et MprAdminConnectionHangupNotification permettent à la DLL d’auditer les connexions utilisateur au serveur. Un serveur RAS appelle la fonction MprAdminAcceptNewConnection chaque fois qu’un utilisateur tente de se connecter. Cette fonction permet d’empêcher l’utilisateur de se connecter. La fonction MprAdminAcceptNewConnection peut également générer des entrées de journal pour la facturation ou l’audit. Lorsque l’utilisateur se déconnecte, le serveur RAS appelle la fonction MprAdminConnectionHangupNotification , qui peut consigner l’heure à laquelle l’utilisateur s’est déconnecté.

Les fonctions MprAdminAcceptNewConnection2 et MprAdminConnectionHangupNotification2 sont similaires à MprAdminAcceptNewConnection et MprAdminConnectionHangupNotification. Toutefois, lorsque RAS appelle les fonctions MprAdminAcceptNewConnection2 et MprAdminConnectionHangupNotification2 , RAS transmet un paramètre supplémentaire de type RAS_CONNECTION_2.

RAS prend en charge plusieurs DLL d’administration. L’utilisateur d’accès à distance n’est autorisé à se connecter que si l’implémentation de la fonction MprAdminAcceptNewConnection ou MprAdminAcceptNewConnection2 dans chacune des DLL accepte la connexion. En d’autres termes, chaque DLL doit accepter la connexion pour que l’utilisateur soit autorisé à se connecter.

Il est possible qu’une seule connexion RAS utilise plusieurs liens lors de la connexion à un serveur RAS. Les fonctions MprAdminAcceptNewLink et MprAdminLinkHangupNotification permettent à la DLL d’administration de gérer des liens individuels dans une connexion. RAS appelle MprAdminAcceptNewLink chaque fois qu’un nouveau lien est établi pour une connexion. Étant donné que toutes les connexions impliquent au moins un lien, RAS appelle toujours MprAdminAcceptNewLink une fois immédiatement après que MprAdminAcceptNewConnection ou MprAdminAcceptNewConnection2 retourne, à condition que MprAdminAcceptNewConnection ou MprAdminAcceptNewConnection2 accepte la connexion. RAS appelle MprAdminLinkHangupNotification chaque fois qu’un lien pour une connexion est arrêté.

Étant donné que RAS prend en charge plusieurs DLL d’administration, l’utilisateur d’accès à distance n’est autorisé à se connecter que si l’implémentation de la fonction MprAdminAcceptNewLink dans chacune des DLL accepte la connexion. En d’autres termes, chaque DLL doit accepter le lien pour que le lien soit établi.

Une fois que le serveur RAS a authentifié un utilisateur, il appelle la fonction MprAdminGetIpAddressForUser pour obtenir une adresse IP pour le client distant. Cette fonction fournit un autre schéma pour mapper une adresse IP à un utilisateur rendez-vous. Si MprAdminGetIpAddressForUser n’est pas implémenté, un serveur RAS associe l’utilisateur distant à une adresse IP sélectionnée à partir d’un pool statique d’adresses IP, ou à une adresse SÉLECTIONNÉE par un serveur DHCP (Dynamic Host Configuration Protocol). La fonction MprAdminGetIpAddressForUser permet à la DLL de remplacer cette adresse IP par défaut et de spécifier une adresse IP particulière pour chaque utilisateur. La fonction MprAdminGetIpAddressForUser peut définir un indicateur qui oblige RAS à appeler la fonction MprAdminReleaseIpAddress lorsque l’utilisateur se déconnecte. La DLL peut ensuite utiliser MprAdminReleaseIpAddress pour mettre à jour son mappage d’adresses utilisateur à ADRESSE IP.

RAS prend en charge plusieurs DLL d’administration, mais il appelle les fonctions MprAdminGetIpAddressForUser et MprAdminReleaseIpAddress uniquement dans la première DLL qui les implémente et les exporte. RAS ignore les implémentations de ces fonctions dans les autres DLL. RAS vérifie les DLL pour ces fonctions dans l’ordre dans lequel elles sont répertoriées dans le Registre.

RAS sérialise les appels dans la DLL d’administration. Un appel dans l’une des fonctions de la DLL pour un client RAS donné ne préempte pas un appel à cette fonction pour un autre client RAS ; RAS n’appelle pas la fonction pour l’autre client tant que l’appel initial n’est pas terminé. En outre, la sérialisation s’étend à certains groupes de fonctions. Les fonctions d’adresse IP sont sérialisées en tant que groupe ; un appel dans MprAdminGetIpAddressForUser ou MprAdminReleaseIpAddress bloque les appels dans les deux fonctions jusqu’à ce que l’appel initial soit retourné. MprAdminAcceptNewConnection et MprAdminConnectionHangupNotification sont également sérialisés en tant que groupe.

RAS exécute les fonctions qui attribuent des adresses IP en un seul processus ; les fonctions pour les notifications de connexion et de déconnexion sont exécutées dans un autre processus. Par conséquent, la DLL ne dépend pas des données partagées entre ces deux jeux de fonctions.

N’appelez pas les fonctions d’administration RAS ou les fonctions d’administration utilisateur RAS à partir d’une fonction de légende. Les appels à ces fonctions ne sont pas retournés lorsqu’ils sont effectués à partir d’une fonction de légende.

Le serveur RAS consigne une erreur dans le journal des événements système si une erreur se produit lorsqu’il tente de charger une DLL d’administration RAS ou lors de l’appel de l’une des fonctions de la DLL. Cela peut se produire, par exemple, si la DLL a spécifié le nom incorrect pour une fonction exportée, ou si elle n’a pas inclus le nom de la fonction dans le fichier DEF. L’entrée dans le journal des événements indique la raison de l’échec.

Windows 2000/NT : Plusieurs DLL d’administration ne sont pas prises en charge.