J'ai une chaîne de connexion dans ma configuration Web:
<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" providerName="System.Data.SqlClient" />
Comme vous le voyez, il y a un signe de guillemet (") dans le mot de passe (donné par un autre service. Je ne peux pas changer le mot de passe des utilisateurs de la base de données).
Comment dois-je échapper à la citation dans cette chaîne de connexion?
Btw: j'ai déjà essayé & quot; dans la chaîne. Cela n'a pas fonctionné - ado.net a alors obtenu une ArgumenException: "Le format de la chaîne d'initialisation n'est pas conforme à la spécification commençant à l'index 57." 57 est l'endroit où le & quot; est dans ma chaîne de connexion. J'ai également essayé d'inclure la partie mot de passe dans '- ne fonctionnait pas non plus.
Également essayé "" et \ "- web.config ne peut pas être analysé alors.
Merci pour la solution:
J'ai dû combiner l'échappement des guillemets doubles et mettre le mot de passe entre guillemets simples:
<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'" providerName="System.Data.SqlClient" />
la source
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word"
Puisque le web.config est XML, vous devez échapper les cinq caractères spéciaux:
&
->&
esperluette, U + 0026<
-><
crochet à angle gauche, signe inférieur à, U + 003C>
->>
crochet à angle droit, signe supérieur à, U + 003E"
->"
guillemet, U + 0022'
->'
apostrophe, U + 0027+ ce n'est pas un problème, je suppose.
Duc Filan ajoute: Vous devez également envelopper votre mot de passe avec un guillemet simple
'
:connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'"
la source
;
caractère?si cela
ne fonctionne pas, essayez à la"
place."
la source
La réponse d'Odeds est presque complète. Juste une chose à ajouter.
ayant ce mot de passe = "'; cela devrait être une chaîne de connexion valide:
connectionString='Server=dbsrv;User ID=myDbUser;Password='"&&;'
la source
password='''';
est valide. Mais votre suggestion est la seule chose qui a fonctionné pour moi. Ceci est également utilisé dans d'autres schémas d'échappement.Utilisez
"
Cela devrait fonctionner.la source