В моей веб-конфигурации есть строка подключения:
<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" providerName="System.Data.SqlClient" />
Как видите, в пароле есть знак кавычки (") (полученный из другого отдела. Я не могу изменить этот пароль пользователя базы данных).
Как мне избежать кавычек в этой строке подключения?
Кстати: я уже пробовал & quot; в строке. Это не сработало - после этого у ado.net возникло исключение ArgumenException: «Формат строки инициализации не соответствует спецификации, начиная с индекса 57». 57 - это место, где & quot; находится в моей строке подключения. Я также пробовал заключить часть пароля в '- тоже не сработало.
Также пробовал "" и \ "- тогда web.config не может быть проанализирован.
Спасибо за решение:
Мне пришлось объединить экранирование двойной кавычки и заключить пароль в одинарные кавычки:
<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'" providerName="System.Data.SqlClient" />
источник
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word"
Поскольку web.config - это XML, вам нужно экранировать пять специальных символов:
&
->&
амперсанд, U + 0026<
-><
левая угловая скобка, знак «меньше», U + 003C>
->>
правая угловая скобка, знак «больше», U + 003E"
->"
кавычка, U + 0022'
->'
апостроф, U + 0027+ , я полагаю, не проблема.
Дык Филан добавляет: Вы также должны заключить свой пароль в одинарные кавычки
'
:connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'"
источник
;
характер?если
не работает, попробуйте"
."
источник
Ответ Одедса почти завершен. Еще кое-что добавлю.
имея этот пароль = "'; это должна быть допустимая строка подключения:
connectionString='Server=dbsrv;User ID=myDbUser;Password='"&&;'
источник
password='''';
действителен. Но ваше предложение - единственное, что у меня сработало. Это фактически используется и в других схемах побега.Используйте
"
Это должно сработать.источник