class NsServerSession

La classe NsServerSession décrit une session active, c'est à dire un contexte de connexion attribué à un utilisateur durant une durée donnée.

Toute connexion au serveur nécessite l'établissement d'une session possédant un numéro d'identifiant unique. Plusieurs sessions peuvent être ouvertes en parallèle par le même utilisateur. Lorsque le serveur détecte que la connexion a été perdue avec le client, il libère automatiquement les ressources qui lui étaient associées et l'objet NsServerSession est supprimé de la liste des sessions ouvertes.

ID : __int64 readonly

L'identifiant unique de session.

IsCanceled : VARIANT_BOOL readonly

Une valeur booléenne indiquant si la session a été marquée comme à annuler par l'administrateur du serveur de sauvegarde.

UserID : __int64 readonly

L'identifiant numérique de l'utilisateur (NsUser) ayant ouvert la session.

StartDateTime : VARIANT readonly

La date d'ouverture de session.

VARIANT_BOOL Cancel(NsConnection Connection)

Marque la session comme à annuler. Les connexions actives utilisant cette session sont immédiatement déconnectées du serveur de sauvegarde.

Lister les sessions ouvertes

Set connection = CreateObject("NsAPI.NsConnection")

if connection.ConnectToLocalServer then
  set server = CreateObject("NsAPI.NsServer")
  
  if server.Load(connection) then ' Charger les informations serveur
    set sessions = server.ActiveSessions(connection) ' Récupère la liste des sessions
    
    MsgBox "Nombre de sessions ouvertes : " & sessions.count ' Affiche le nombre de sessions ouvertes
    
    for each session in sessions
      ' Pour chaque session, afficher le nom complet de l'utilisateur qui l'a ouvert
      set user = CreateObject("NsAPI.NsUser")
      
      if user.LoadFromID(connection, session.UserID) then
        MsgBox "Session active ouverte par " & user.Description
      end if
    next
  end if
  
  connection.Disconnect
else
  MsgBox "Connexion au serveur local impossible."
end if

Annulation de toutes les sessions, excepté la session courante

Set connection = CreateObject("NsAPI.NsConnection")
Set sysutils = CreateObject("NsAPI.NsScriptUtils")

if connection.ConnectToLocalServer then
  set server = CreateObject("NsAPI.NsServer")
  
  if server.Load(connection) then ' Charger les informations serveur
    set sessions = server.ActiveSessions(connection) ' Récupère la liste des sessions
    
    for each session in sessions
      if sysutils.CompareInt64(session.ID, connection.sessionID) = 0 then ' On n'annule pas notre session
        if not session.Cancel(connection) then ' Annuler la session
          MsgBox "Impossible d'annuler la session."
        else
          MsgBox "Session #" & sysutils.Int64ToStr(session.ID) & " annulée avec succès."
        end if
      end if

    next
  end if
  
  connection.Disconnect
else
  MsgBox "Connexion au serveur local impossible."
end if