Побег цитата в интернете.строка подключения конфигурации


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

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

Как вы видите, в пароле есть знак цитаты ( " ) (Данный из другого отдела. Я не могу изменить этот пароль пользователей БД).

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

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

также пробовал ""и " - web.конфигурация не может быть проанализирована тогда.

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

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

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

5 ответов:

использовать &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' делает.

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

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

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

+ - это не проблема, я полагаю.

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

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

ответ Odeds почти завершен. Только одну вещь, чтобы добавить.

  1. побег xml специальные символы, как сказал Эмануэль греко.
  2. поместите пароль в одинарные кавычки, как сказал Одед
  3. (это один новый) побег одиночные тики с другой один тик ( ref)

имея этот пароль="'; это должно быть допустимой строкой подключения:

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