Цитата Escape в строке подключения web.config

У меня есть строка подключения в моей веб-конфигурации:

<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" providerName="System.Data.SqlClient" />

Как вы видите, в пароле есть знак кавычек (") (данный из другого отдела я не могу изменить этот пароль пользователей db).

Как мне избежать кода в этой строке подключения?

Btw: Я уже пробовал и quot; в строке. Это не сработало - ado.net получил теперь ArgumenException: "Формат строки инициализации не соответствует спецификации, начинающейся с индекса 57". 57, где " находится в моей строке соединения. Я также попытался включить часть пароля в '- тоже не работал.

Также попробовали "и\" - web.config не может быть проанализирован.

Спасибо за решение:

Мне пришлось объединить экранирование двойной кавычки и поместить пароль в одинарные кавычки:

<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass&quot;word'" providerName="System.Data.SqlClient" />

Ответ 1

Используйте &quot; вместо ", чтобы избежать его.

web.config - это XML файл, поэтому вы должны использовать экранирование XML.

connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass&quot;word"

Смотрите этот форум.

Обновление

&quot; должен работать, но, как нет, попробовали ли вы некоторые другие escape-последовательности строк для .NET? \" и ""?

Обновление 2:

Попробуйте одинарные кавычки для connectionString:

connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word'

Или:

connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass&quot;word'

Обновление 3:

От MSDN (свойство SqlConnection.ConnectionString):

Чтобы включить значения, содержащие символ с запятой, символ с одной кавычкой или символ двойной кавычки, значение должно быть заключено в двойные кавычки. Если значение содержит как точку с запятой, так и символ двойной кавычки, значение может быть заключено в одинарные кавычки.

Итак:

connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass&quot;word'"

Проблема не в web.config, а в формате строки подключения. В строке соединения, если у вас есть " в значении (пары ключ-значение), вам нужно заключить значение в '. Итак, пока Password=somepass"word не работает, Password='somepass"word' делает.

Ответ 2

connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass&quot;word"

Так как web.config - это XML, вам нужно избегать пяти специальных символов:

&amp;& амперсанд, U + 0026
&lt;< левая угловая скобка, знак меньше, U + 003C
&gt;> скобка с прямым углом, знак больше, U + 003E
&quot;" кавычка, U + 0022
&apos;' апостроф, U + 0027

+ не проблема. Я полагаю.

Ответ 3

если &quot; не работает, тогда попробуйте &#34;.

Ответ 4

Использовать &quot; Это должно работать.