Chaînes de connexion dans ADO.NET
S'applique à : .NET Framework .NET .NET Standard
Une chaîne de connexion contient des informations d'initialisation qui sont passées en tant que paramètre d'un fournisseur de données à une source de données. Le fournisseur de données reçoit la chaîne de connexion en tant que valeur de la propriété DbConnection.ConnectionString. Le fournisseur analyse la chaîne de connexion et s’assure que la syntaxe est correcte et que les mots clés sont pris en charge. Ensuite, la méthode DbConnection.Open() transmet les paramètres de connexion analysés à la source de données. La source de données effectue une validation supplémentaire et établit une connexion.
Syntaxe de la chaîne de connexion
Une chaîne de connexion est une liste délimitée par des points-virgules de paires de paramètres clé/valeur :
keyword1=value; keyword2=value;
Les mots clés ne respectent pas la casse. Toutefois, les valeurs peuvent respecter la casse, en fonction de la source de données. Les mots clés et les valeurs peuvent contenir des caractères d’espaces blancs. Les espaces blancs de début et de fin sont ignorés dans les mots clés et les valeurs sans guillemets.
Si une valeur contient le point-virgule, les caractères de contrôle Unicode ou les espaces blancs de début ou de fin, elle doit être placée entre guillemets simples ou doubles. Par exemple :
Keyword=" whitespace ";
Keyword='special;character';
Le caractère englobant peut ne pas se trouver dans la valeur qu’il englobe. Par conséquent, une valeur contenant des guillemets simples peut être placée entre guillemets doubles et vice versa :
Keyword='double"quotation;mark';
Keyword="single'quotation;mark";
Vous pouvez également échapper le caractère englobant à l’aide de deux d’entre eux :
Keyword="double""quotation";
Keyword='single''quotation';
Les guillemets eux-mêmes, ainsi que le signe égal, ne nécessitent pas d’échappement, donc les chaînes de connexion suivantes sont valides :
Keyword=no "escaping" 'required';
Keyword=a=b=c
Étant donné que chaque valeur est lue jusqu’au point-virgule suivant ou jusqu’à la fin de la chaîne, la valeur dans le dernier exemple est a=b=c
et le point-virgule final est facultatif.
Toutes les chaînes de connexion partagent la même syntaxe de base décrite ci-dessus. L’ensemble des mots clés reconnus dépend du fournisseur. Le fournisseur de données Microsoft SqlClient pour SQL Server prend en charge de nombreux mots clés d’anciennes API, mais est généralement plus souple et accepte des synonymes pour un grand nombre des mots clés de chaîne de connexion courants.
Les erreurs de frappe peuvent entraîner des erreurs. Par exemple, Integrated Security=true
est valide, tandis que IntegratedSecurity=true
provoque une erreur.
Les chaînes de connexion générées manuellement au moment de l’exécution à partir d’une entrée utilisateur non validée peuvent entraîner des attaques par injection de chaîne, ce qui compromet la sécurité au niveau de la source de données. Pour résoudre ces problèmes, la classe SqlConnectionStringBuilder a été créée. Cette classe de générateur de chaînes de connexion expose les paramètres en tant que propriétés fortement typées et permet de valider la chaîne de connexion avant qu’elle ne soit envoyée à la source de données.
Contenu de cette section
Générateur de chaînes de connexion
Montre comment utiliser la classe ConnectionStringBuilder
pour construire des chaînes de connexion valides au moment de l’exécution.
Chaînes de connexion et fichiers config
Montre comment stocker et extraire des chaînes de connexion dans des fichiers de configuration.
Syntaxe de la chaîne de connexion
Décrit comment configurer des chaînes de connexion spécifiques au fournisseur pour SqlClient
.
Protection des informations de connexion
Montre des techniques pour la protection des informations utilisées pour la connexion à une source de données.