Obtenez de l'utilisateur et le mot de passe de ConnectionStringSettings
Comment puis-je obtenir de l'utilisateur et le mot de passe à partir d'une telle connectionString dans l'application.config avec un .NET fonction?
Bien sûr j'ai pu lire que la chaîne et obtenir la valeur après le ID= et Mot de passe=.
<connectionStrings>
<add name="MyConString" connectionString="Data Source=(local);Initial Catalog=MyDatabase;Persist Security Info=True;User ID=MyUsername Password=MyPassword;Connect providerName="System.Data.SqlClient"/>
</connectionStrings>
- J'espère que vous avez remarqué que vous manque un"; " après "MyUsername" avant "Mot de passe"
Vous devez vous connecter pour publier un commentaire.
utiliser le ConnectionBuilderClass
en collaboration avec l'
pour atteindre cet objectif.
Si vous avez besoin d'une approche plus générique pour l'analyse de la chaîne de connexion (celui qui n'a pas à composer avec les spécificités d'un fournisseur de base de données), vous pouvez également utiliser
Système.Les données.Commun.DbConnectionStringBuilder
qui est une classe de base pour d'autres classes comme SqlConnectionStringBuilder etc.
Vous pouvez créer une instance de DbConnectionStringBuilder et dans mon cas, j'avais besoin d'avoir un configurable chaîne de connexion que j'ai pu obtenir des informations à partir, quel que soit le fournisseur de base de données type. Un peu d'options si vous avez besoin de cette souplesse, vous pourriez créer des ConnectionStringBuilder pour votre fournisseur comme d'autres l'ont suggéré -- ce serait probablement nécessaire pour la plupart des cas où le fournisseur propriétés spécifiques sont nécessaires.
Ou si vous voulez le lire juste un couple des propriétés génériques, vous pouvez utiliser DbConnectionStringBuilder si vous avez juste besoin de l'id utilisateur et le mot de passe par exemple.
Cet échantillon devrait travailler pour une chaîne de connexion qui inclut l'id utilisateur et le mot de passe.
Vous pouvez obtenir la chaîne de connexion à partir de la suivante
Vous pouvez obtenir ensuite la sous-chaîne que vous recherchez .
Juste pour ajouter un peu de Tomas Walek de réponse.
Cette approche ne peut fonctionner que si "User ID" dans la chaîne de connexion est correctement capitalisées. Fournisseur Oracle accepté "Id Utilisateur" OK, mais
SqlConnectionStringBuilder
n'a pas de travail.ajouter une référence à System.Configuration et ensuite utiliser:
en utilisant le Système.Configuration;
pour searchSetting vous pouvez utiliser ce que vous voulez "Utilisateur" ou le mot de passe.
une autre façon est d'utiliser l'expression régulière (qui je l'ai fait), avec une plus indulgent modèle, pour gérer les différentes façons d'un id utilisateur pourraient être fournis dans la chaîne de connexion:
token.Substring(token.IndexOf("=") + 1);
à dépouiller le "="?