Utiliser les API .NET

Vous pouvez intégrer les API .NET de Stormshield Data Connector à vos applications pour leur permettre d'interagir avec Stormshield Data Security. Dans cette section, les exemples de code sont fournis en utilisant le langage C#.

Paramétrer un projet Visual Studio

  1. Créez un projet .NET C# reposant sur la version 4.5.2 du .NET Framework. Vous devez avoir installé le .NET Framework 4.5.2 Developer Pack.

  2. Le .NET Framework 4.5.2 Developer Pack n'est nécessaire que pour compiler l’application utilisant Stormshield Data Connector. L’exécution d’une application utilisant Stormshield Data Connector ne le requiert pas.
  3. Ajoutez la référence suivante à votre projet : Stormshield.DataSecurity.Connector.

Cet assembly se trouve dans le dossier d'installation de Stormshield Data Security : par défaut C:\Program Files\Arkoon\Security BOX\Connector.

Vous pourrez alors utiliser l'espace de noms Stormshield.DataSecurity.Connector et disposer de l'ensemble des fonctionnalités de l'assembly.

D'autres espaces de noms (présents dans l'assembly Stormshield.DataSecurity.Connector) peuvent être également utilisés pour gérer certains objets Stormshield Data Security. Retrouvez ces espaces de noms dans les exemples donnés dans ce document.

Dans certains cas, une DLL d’interopérabilité devra être ajoutée en référence à votre projet. Ces assemblies se trouvent dans le dossier d’installation de Stormshield Data Security.

Sur un système d'exploitation 64 bits, l'exécutable .NET doit être compilé pour la plate-forme 64 bits :

  1. Rendez vous dans les propriétés du projet Visual Studio, section "Build".
  2. Choisissez "Platform target = x64" ou décochez "Prefer 32-bit" si vous souhaitez rester en "Platform target Any CPU".

Utiliser les API .NET

Les API .NET Stormshield Data Connector s'utilisent de la même façon que l'ensemble de cmdlets fournies par le module PowerShell. L'espace de noms Stormshield.DataSecurity.Connector comprend tous les objets nécessaires pour interagir avec Stormshield Data Security.

Le point d'entrée pour utiliser les API est la classe Stormshield.DataSecurity.Connector.API. C'est un objet qui implémente l'interface IDisposable. Une fois l'objet créé, utilisez la méthode Execute pour faire appel à une API.

On appelle une API .NET de la même façon qu'on appelle une cmdlet PowerShell. Deux surcharges de la méthode Execute sont disponibles.

object[] Execute(string)

Cette surcharge est utilisée pour appeler une cmdlet PowerShell dont les paramètres ne sont que des chaînes de caractères (objets de type string), et pas des objets .NET. La cmdlet entière (avec ses paramètres) doit être entrée en tant que paramètre string.

object[] Execute(string, KeyValuePair<string, object>[])

Cette surcharge est utilisée pour appeler une cmdlet PowerShell dont les paramètres peuvent être des objets .NET. Le nom de la cmdlet est entré en tant que premier paramètre. Les paramètres de la cmdlet sont entrés dans le tableau KeyValuePair (reportez-vous au cas d'usage ci-dessous).

Le tableau object[] retourné fonctionne comme suit :

  • Il est égal à « null » si l’API ne retourne rien ;
  • Il est égal à un tableau pouvant contenir un ou plusieurs objets si l’API retourne un ou plusieurs résultats ;
  • Les éléments du tableau ne peuvent jamais être « null ».

Exemples

Première surcharge de la méthode Execute

Cet exemple montre comment savoir quel utilisateur est connecté.

using Stormshield.DataSecurity.Connector;
using (API api = new API())
{
  object[] objects = api.Execute("Get-SDSUser");
}

Si le tableau retourné n'est pas vide et le premier élément n'est pas « null », l'utilisateur a été retrouvé avec succès. Le premier élément peut alors être converti en classe User depuis l'espace de noms Stormshield.DataSecurity.Connector.Kernel .

using Stormshield.DataSecurity.Connector.Kernel;
User user = objects[0] as User;

Si la cmdlet PowerShell retourne plusieurs objets, ils sont tous disponibles dans le tableau d'objets.

Selon les cas, l'appelant doit s'assurer que le tableau d'objets n'est pas vide et que les éléments ne sont pas « null ».

Deuxième surcharge de la méthode Execute

Cet exemple montre l’utilisation du tableau KeyValuePair pour chiffrer plusieurs fichiers :

string[] filePaths = new string[] { "file-path-1", "file-path-2", ... };
objects[] certificates; // retrieved from a call to Get-SDSCertificate API
KeyValuePair<string, object>[] parameters = new KeyValuePair<string, object>[]
{
  new KeyValuePair<string, object>("-Path", filePaths),
  new KeyValuePair<string, object>("-Coworkers", certificates)
};
objects = api.Execute("Protect-SDSFile", parameters);

Chaque paramètre doit être ajouté au tableau d’objets KeyValuePair, la clé étant le nom du paramètre de la cmdlet.

Exécuter des exemples de code

Des projets d'exemples sont fournis avec Visual Studio 2013.

Prérequis :

Le .NET Framework 4.5.2 Developer Pack n'est nécessaire que pour compiler l’application utilisant Stormshield Data Connector. L’exécution d’une application utilisant Stormshield Data Connector ne le requiert pas.

Chaque projet fourni dans cette solution illustre l'utilisation d'une API donnée.

Cas d'usage des API .NET

Dans les exemples suivants, les cas d'erreur ne sont pas gérés.

Gérer la connexion utilisateur

Connecter un utilisateur

L'API Connect-SDUser permet de connecter un utilisateur à Stormshield Data Security.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Kernel;
using (API api = new API())
{
  object[] objects = api.Execute("Connect-SDSUser <id> <password>");
  User connectedUser = objects[0] as User;
  Console.WriteLine("User '{0}' connected", connectedUser.Id);
}				

Vérifier l'état de la connexion

L'API Get-SDSUser permet de connaître l’état de la session Stormshield Data Security courante (connecté ou verrouillé) :

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Kernel;
using (API api = new API())
{
  object[] objects = api.Execute("Get-SDSUser");
  User connectedUser = objects[0] as User;
  if (connectedUser.Locked)
    Console.WriteLine("User is locked");
}			

Verrouiller une session

L'API Lock-SDSUser permet de verrouiller la session Stormshield Data Security courante :

using Stormshield.DataSecurity.Connector;
using (API api = new API())
{
  // first ensure that a user is connected
  api.Execute("Lock-SDSUser");
}

Déverrouiller une session

L'API Unlock-SDSUser permet de déverrouiller la session Stormshield Data Security courante :

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Kernel;
using (API api = new API())
{
  // first ensure that a user is connected and locked
  object[] objects = api.Execute("Unlock-SDSUser <password>");
  User connectedUser = objects[0] as User;
  Console.WriteLine("User '{0}' unlocked", connectedUser.Id);
}

Déconnecter un utilisateur

L'API Disconnect-SDSUser permet de déconnecter l’utilisateur courant :

using Stormshield.DataSecurity.Connector;
using (API api = new API())
{
  api.Execute("Disconnect-SDSUser");
  // if no exception thrown, then the operation succeeded
}

Interagir avec l'annuaire de confiance

Un utilisateur Stormshield Data Security doit être connecté pour pouvoir effectuer les opérations décrites ci-dessous (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est levée.

Récupérer les certificats

L'API Get-SDSCertificate permet de récupérer un ou plusieurs certificats présents dans l’annuaire.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Common;
using (API api = new API())
{
  // first ensure that a user is connected
  object[] objects = api.Execute("Get-SDSCertificate -EmailAddress alicesmith@mycompany.com");
  X509Certificate certificate = objects[0] as X509Certificate;
}

NOTE
La récupération des certificats par adresse e-mail se base uniquement sur le champ Adresse email disponible dans l’onglet Général d’un certificat. Les adresses e-mail contenues dans les détails du certificat ne sont pas utilisées.

Il est possible de récupérer plusieurs certificats en même temps en utilisant la syntaxe de liste PowerShell :

using Stormshield.DataSecurity.Connector;
using (API api = new API())
{
  // first ensure that a user is connected
  object[] objects = api.Execute("Get-SDSCertificate -EmailAddress alicesmith@mycompany.com,jodiefisher@mycompany.com,robertmiller@mycompany.com");
  X509Certificate aliceSmithCertificate = objects[0] as X509Certificate;
  X509Certificate jodieFisherCertificate = objects[1] as X509Certificate;
  X509Certificate robertMillerCertificate = objects[2] as X509Certificate;
}

Si l’option UpdateStatus n’est pas sélectionnée lors de la commande, les certificats sont récupérés sans la donnée de statut. Pour avoir une mise à jour de ce champ, il faut le demander explicitement. La commande prend alors plus de temps à renvoyer les certificats.

Exporter le contenu de l'annuaire

Le contenu de l’annuaire de confiance peut être sauvegardé dans un fichier pour être restauré ultérieurement.

L'API Export-SDSAddressBook permet d’exporter une partie du contenu de l’annuaire d’un utilisateur.

L’exemple suivant montre comment exporter dans un fichier au format P7B, les certificats, leur parenté ainsi que les contacts et les groupes :

using Stormshield.DataSecurity.Connector;
using (API api = new API())
{
  // first ensure that a user is connected
  string p7bPath = @"path\to\file.p7b";
  object[] objects = api.Execute(string.Format("Export-SDSAddressBook -Path '{0}' -ExportAncestry -ExportContactsAndGroups", p7bPath));
  System.IO.FileInfo p7bFileInfo = objects[0] as System.IO.FileInfo;
}

L’export de la totalité de l’annuaire en incluant la personnalisation des certificats s’effectue en utilisant l'API Backup-SDSAddressBook.

L’exemple qui suit permet de sauvegarder la totalité de l’annuaire dans un fichier au format P7Z :

using Stormshield.DataSecurity.Connector;
using (API api = new API())
{
  // first ensure that a user is connected 
  string p7zPath = @"path\to\file.p7z";
  oject[] objects = api.Execute(string.Format("Backup-SDSAddressBook -Path '{0}'", p7zPath));
  System.IO.FileInfo p7zFileInfo = objects[0] as System.IO.FileInfo;
}

Le fichier .p7z permet de sauvegarder les données personnalisées des certificats. En revanche, ce format n’est pas compatible avec les versions de Stormshield Data Security antérieures à la version 9.1.

Importer le contenu de l'annuaire

Le contenu de l’annuaire peut être importé avec le code suivant. L’exemple présenté ici utilise un fichier au format P7Z, mais tout format compatible avec l’annuaire de la Suite pourrait fonctionner.

using Stormshield.DataSecurity.Connector;
using (API api = new API())
{
  // first ensure that a user is connected 
  string p7zPath = @"path\to\file.p7z";
  api.Execute(string.Format("Import-SDSAddressBook -Path '{0}'", p7zPath));
}

Interagir avec Stormshield Data File

Obtenir des informations sur des fichiers

L'API Get-SDSFile permet de récupérer des informations sur un fichier, chiffré ou non.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.File;
using (API api = new API())
{
  string sboxPath = @"path\to\file.sdsx";
  object[] objects = api.Execute(string.Format("Get-SDSFile '{0}'", sboxPath));
  SecureFile secureFile = objects[0] as SecureFile;
}

L'objet SecureFile contient les informations suivantes sur le fichier :

  • si le fichier est chiffré ou pas.
  • la liste de destinataires (adresses e-mail, dans le cas où le fichier est chiffré). Information lue dans l'en-tête.

Plusieurs chemins d'accès de fichiers peuvent être donnés dans l'API Get-SDSFile, en tant que liste PowerShell :

object[] objects = api.Execute(string.Format("Get-SDSFile '{0}','{1}'", sboxPath1, sboxPath2));

Dans ce cas, le tableau d'objets retourné contient deux éléments procurant les informations sur chaque fichier.

Il n'est pas nécessaire que l'utilisateur soit connecté pour récupérer les informations de base d'un fichier. Pour obtenir plus d'informations (concernant les certificats), un utilisateur doit être connecté.

Chiffrer un fichier

L'API Protect-SDSFile permet de chiffrer un fichier avec Stormshield Data File. La liste des certificats doit être récupérée de l'annuaire de l'utilisateur (reportez-vous à Récupérer les certificats).

Un utilisateur Stormshield Data Security doit être connecté pour chiffrer un fichier (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est levée.

L’exemple suivant montre comment chiffrer un fichier pour plusieurs collaborateurs en fournissant leur certificat :

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.File;
using (API api = new API())
{
  // first ensure that a user is connected
  object[] certificates = api.Execute("Get-SDSCertificate -EmailAddress alicesmith@mycompany.com,jodiefisher@mycompany.com");
  KeyValuePair<string, object>[] parameters = new KeyValuePair<string, object>[]
  {
    new KeyValuePair<string, object>("-Path", @"path\to\file\to\be\encrypted"),
    new KeyValuePair<string, object>("-Coworkers", certificates)
  };
  object[] objects = api.Execute("Protect-SDSFile", parameters);
  SecureFile secureFile = objects[0] as SecureFile;
}

Pour chiffrer plusieurs fichiers en même temps :

string[] files = new string[] { @"some\path", @"some\other\path" };
KeyValuePair<string, object>[] parameters = new KeyValuePair<string, object>[]
{
  new KeyValuePair<string, object>("-Path", files),
  new KeyValuePair<string, object>("-Coworkers", objects)
};

Déchiffrer un fichier

L'API Unprotect-SDSFile permet de déchiffrer un fichier avec Stormshield Data File.

Un utilisateur Stormshield Data Security doit être connecté pour déchiffrer un fichier (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est générée.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.File;
using (API api = new API())
{
  // first ensure that a user is connected
  string sboxPath = @"path\to\file.sdsx";
  object[] objects = api.Execute(string.Format("Unprotect-SDSFile '{0}'", filePath));
  SecureFile secureFile = objects[0] as SecureFile;
}

Ajouter des collaborateurs pour des fichiers sécurisés

L'API Add-SDSFileCoworker permet de rajouter un ou plusieurs collaborateurs sur un ou plusieurs fichiers chiffrés avec Stormshield Data File.

Un utilisateur Stormshield Data Security doit être connecté pour pourvoir ajouter des collaborateurs (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est générée.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Common;
using Stormshield.DataSecurity.Connector.File;
using (API api = new API())
{
  // first ensure that a user is connected
  string sboxPath = @"path\to\file.sdsx";
  object[] certificates = api.Execute("Get-SDSCertificate -EmailAddress alicesmith@mycompany.com");
  KeyValuePair<string, object>[] parameters = new KeyValuePair<string, object>[] 
  {
    new KeyValuePair<string, object>("Path", sboxPath),
    new KeyValuePair<string, object>("Coworkers", certificates)
  };
  object[] objects = api.Execute("Add-SDSFileCoworker", parameters);
  SecureFile secureFile = objects[0] as SecureFile;
}			

Changer la liste des collaborateurs associés à des fichiers sécurisés

L'API Set-SDSFileCoworker permet de remplacer tous les collaborateurs associés à un ou plusieurs fichiers chiffrés avec Stormshield Data File par un ou plusieurs autres.

Un utilisateur Stormshield Data Security doit être connecté pour pourvoir ajouter des collaborateurs (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est générée.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Common;
using Stormshield.DataSecurity.Connector.File;  
using (API api = new API())
{
  // first ensure that a user is connected
  string sboxPath = @"path\to\file.sdsx";
  object[] certificates = api.Execute("Get-SDSCertificate -EmailAddress alicesmith@mycompany.com");
  KeyValuePair<string, object>[] parameters = new KeyValuePair<string, object>[] 
  {
    new KeyValuePair<string, object>("Path", sboxPath),
    new KeyValuePair<string, object>("Coworkers", certificates)
  };
  object[] objects = api.Execute("Set-SDSFileCoworker", parameters);
  SecureFile secureFile = objects[0] as SecureFile;
}

Supprimer des collaborateurs associés à des fichiers sécurisés

L'API Remove-SDSFileCoworker permet de supprimer un ensemble de collaborateurs associés à un ou plusieurs fichiers chiffrés avec Stormshield Data File.

Un utilisateur Stormshield Data Security doit être connecté pour pourvoir ajouter des collaborateurs (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est générée.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Common;
using Stormshield.DataSecurity.Connector.File;
using (API api = new API())
{
  // first ensure that a user is connected
  string sboxPath = @"path\to\file.sdsx";
  object[] objects = api.Execute(string.Format("Remove-SDSFileCoworker '{0}' -EmailAddress alicesmith@mycompany.com", sboxPath));
  SecureFile secureFile = objects[0] as SecureFile;
}

Il est possible de supprimer des collaborateurs qui sont soit identifiés par leur adresse e-mail soit par leur certificat. Si la suppression se fait par rapport aux adresses e-mails, une exception sera levée si une des adresses d’un collaborateur est associée à un certificat manquant.

Interagir avec Stormshield Virtual Disk

Un utilisateur Stormshield Data Security doit être connecté pour pouvoir réaliser les opérations décrites ci-dessous (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est levée.

Créer un volume

L'API New-SDSDisk permet de créer un volume de disque virtuel chiffré.

L’exemple suivant montre comment créer un volume de 42 mégaoctets :

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.VirtualDisk;
using (API api = new API())
{
  // first ensure that a user is connected
  string vboxPath = @"path\to\file.vbox";
  object[] objects = api.Execute(string.Format("New-SDSDisk '{0}' -Size {1}", vboxPath, 50));
  Volume volume = objects[0] as Volume;
}

Dans cet exemple, le volume créé n’est ni formaté ni monté.

Obtenir des informations sur un volume

L'API Get-SDSDisk permet de récupérer des informations sur un volume de disque virtuel.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.VirtualDisk;
using (API api = new API())
{
  // first ensure that a user is connected
  string vboxPath = @"path\to\file.vbox";
  object[] objects = api.Execute(string.Format("Get-SDSDisk '{0}'", vboxPath));
  Volume volume = obj as Volume;
}

Monter un volume

L'API Mount-SDSDisk permet de monter un volume de disque virtuel.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.VirtualDisk;
using (API api = new API())
{
  // first ensure that a user is connected
  string vboxPath = @"path\to\file.vbox";
  object[] objects = api.Execute(string.Format("Mount-SDSDisk '{0}'", vboxPath));
  Volume volume = obj as Volume;
}

Démonter un volume

L'API Dismount-SDSDisk permet de démonter un volume de disque virtuel.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.VirtualDisk;
using (API api = new API())
{
  // first ensure that a user is connected
  string vboxPath = @"path\to\file.vbox";
  object[] objects = api.Execute(string.Format("Dismount-SDSDisk '{0}'", vboxPath));
  Volume volume = obj as Volume;
}

Activer le montage automatique d’un volume

L'API Enable-SDSDiskAutomaticMount permet d’activer le montage automatique d’un volume de disque virtuel.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.VirtualDisk;
using (API api = new API())
{
  // first ensure that a user is connected
  string vboxPath = @"path\to\file.vbox";
  object[] objects = api.Execute(string.Format("Enable-SDSDiskAutomaticMount '{0}'", vboxPath));
  Volume volume = obj as Volume;
}

Désactiver le montage automatique d’un volume

L'API Disable-SDSDiskAutomaticMount permet de désactiver le montage automatique d’un volume de disque virtuel.

using Stormshield.DataSecurity.Connector; 
using Stormshield.DataSecurity.Connector.VirtualDisk;
using (API api = new API())
{
  // first ensure that a user is connected
  string vboxPath = @"path\to\file.vbox";
  object[] objects = api.Execute(string.Format("Disable-SDSDiskAutomaticMount '{0}'", vboxPath));
  Volume volume = obj as Volume;
}

Interagir avec Stormshield Data Team

Créer une règle sur un dossier

Un utilisateur Stormshield Data Security doit être connecté pour créer une règle (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est levée.

La cmdlet New-SDSTeamRule permet de créer une règle sur un ou plusieurs dossiers avec Stormshield Data Team.

L’exemple suivant montre comment créer une règle pour plusieurs collaborateurs :

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Team;
using (API api = new API())
{
  // first ensure that a user is connected
  string folderPath = @"path\to\folder";
  object[] certificates = api.Execute("Get-SDSCertificate -EmailAddress alicesmith@mycompany.com,jodiefisher@mycompany.com");
  KeyValuePair<string, object>[] parameters = new KeyValuePair<string, object>[] 
  {
    new KeyValuePair<string, object>("Path", folderPath),
    new KeyValuePair<string, object>("Coworkers", certificates)
  }; 
  object[] objects = api.Execute("New-SDSTeamRule", parameters);
  RuleInfoData ruleInfoData = objects[0] as RuleInfoData;
}

L’utilisateur connecté qui crée la règle est automatiquement renseigné en tant que propriétaire (paramètre Owners). Si aucun utilisateur n’est connecté alors la création de règle échoue.

Lire la règle associée à un dossier

Un utilisateur Stormshield Data Security doit être connecté pour lire une règle (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est levée.

La cmdlet Get-SDSTeamRule permet de lire la règle associée à un ou plusieurs dossiers avec Stormshield Data Team.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Team;
using (API api = new API())
{
  // first ensure that a user is connected
  string folderPath = @"path\to\folder";
  object[] objects = api.Execute(string.Format("Get-SDSTeamRule '{0}'", folderPath));
  RuleInfoData ruleInfoData = objects[0] as RuleInfoData;
}

Lire les informations d’un fichier

La cmdlet Get-SDSTeamFile permet de lire les informations Team d’un ou plusieurs fichiers avec Stormshield Data Team.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Team;
using (API api = new API())
{
  // first ensure that a user is connected
  string filePath = @"path\to\file";
  object[] objects = api.Execute(string.Format("Get-SDSTeamFile '{0}'", filePath));
  FileInfoData fileInfoData = objects[0] as FileInfoData;
}

Appliquer une règle sur un dossier

Un utilisateur Stormshield Data Security doit être connecté pour appliquer une règle (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est levée.

La cmdlet Protect-SDSTeam permet d’appliquer une règle sur un ou plusieurs dossiers avec Stormshield Data Team.

Cette règle doit avoir été créée au préalable.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Team;
using (API api = new API())
{
  // first ensure that a user is connected
  string folderPath = @"path\to\folder";
  object[] objects = api.Execute(string.Format("Protect-SDSTeam '{0}', folderPath));
  foreach (object o in objects)
  {
    OperationStatus status = o as OperationStatus;
  }
}

Supprimer une règle associée à un dossier

Un utilisateur Stormshield Data Security doit être connecté pour supprimer une règle (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est levée.

La cmdlet Remove-SDSTeamRule permet de supprimer une règle associée à un ou plusieurs dossiers avec Stormshield Data Team.

Cette règle doit avoir été créée au préalable.

using Stormshield.DataSecurity.Connector;
using (API api = new API())
{
  // first ensure that a user is connected
  string folderPath = @"path\to\folder";
  api.Execute(string.Format("Remove-SDSTeamRule '{0}'", folderPath));
}

Désécuriser un dossier ou un fichier protégé avec une règle

Un utilisateur Stormshield Data Security doit être connecté pour désécuriser un dossier ou un fichier (reportez-vous à Gérer la connexion utilisateur). Si aucun utilisateur n'est connecté, une exception est levée.

La cmdlet Unprotect-SDSTeam permet de désécuriser un ou plusieurs fichiers ou dossiers avec Stormshield Data Team.

La règle doit avoir été supprimée au préalable.

using Stormshield.DataSecurity.Connector;
using Stormshield.DataSecurity.Connector.Team;
using (API api = new API())
{
  // first ensure that a user is connected
  string folderPath = @"path\to\folder";
  object[] objects = api.Execute(string.Format("Unprotect-SDSTeam '{0}'", folderPath));
  foreach (object o in objects)
  {
    OperationStatus status = o as OperationStatus;
  }
}

Utiliser les API .NET à partir d'un programme C++

Pour piloter Stormshield Data Security en utilisant les API .NET depuis un programme écrit en C ou en C++, vous devez mettre en place un pont entre les deux technologies en écrivant du code en C++ managé (« C++/CLI wrapper ») qui va permettre d’appeler du code .NET depuis du code C ou C++.