Цитата Escape в строке подключения web.config
У меня есть строка подключения в моей веб-конфигурации:
Как вы видите, в пароле есть знак кавычки («) (данный из другого отдела я не могу изменить этот пароль пользователей db).
Как мне избежать цитаты в этой строке соединения?
- Программно зарегистрировать HttpModules во время выполнения
- Добавить пользовательский заголовок на основе типа файла
- Установка страницы по умолчанию в Asp.net
- Ошибка аутентификации при отладке VS2013 - iis express
- Ошибка входа для пользователя «IIS APPPOOL \ ASP.NET v4.0»
Кстати: я уже пробовал & quot; в строке. Это не сработало – ado.net получил теперь ArgumenException: «Формат строки инициализации не соответствует спецификации, начинающейся с индекса 57». 57, где ” находится в моей строке соединения. Я также попытался включить часть пароля в ‘- тоже не работал.
Также пытались «” и \ “- тогда web.config не может быть проанализирован.
Спасибо за решение:
Мне пришлось объединить ускорение двойной цитаты и поместить пароль в одинарные кавычки:
- Вложенное приложение ASP.NET в IIS, наследующее родительские настройки конфигурации?
- Для чего нужны файлы Web.Debug.config и Web.Release.Config?
- Как заблокировать пути в ASP.NET MVC?
- Настройка нескольких параметров SMTP в web.config?
- Переменные в app.config / web.config
- Разрешить анонимную проверку подлинности для одной папки в web.config?
- Использовать преобразование web.config Visual Studio для отладки
- Как сохранить словарь в моем файле web.config?
Использовать "
а не "
убежать от него».
web.config – это XML-файл, поэтому вы должны использовать экранирование XML.
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word"
См. Эту тему.
Обновление :
"
должен работать, но, как и нет, попробовали ли вы некоторые другие escape-последовательности строк для .NET? \"
и ""
?
Обновление 2:
Попробуйте одинарные кавычки для connectionString:
connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word'
Или:
connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word'
Обновление 3:
Из MSDN (свойство SqlConnection.ConnectionString):
Чтобы включить значения, содержащие символ с запятой, символ с одной кавычкой или символ двойной кавычки, значение должно быть заключено в двойные кавычки. Если значение содержит как точку с запятой, так и символ двойной кавычки, значение может быть заключено в одинарные кавычки.
Так:
connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'"
Проблема не в web.config, а в формате строки подключения. В строке соединения, если у вас есть "
в значении (пары ключ-значение), вам нужно заключить значение в '
. Так что, в то время как Password=somepass"word
не работает, Password='somepass"word'
делает.
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word"
Поскольку web.config является XML, вам необходимо избегать пяти специальных символов:
&
-> &
ampersand, U + 0026
<
-> <
левая угловая скобка, знак меньше, U + 003C
>
->> правая угловая скобка, знак больше, U + 003E
"
-> "
, U + 0022
'
-> '
апостроф, U + 0027
+ не проблема, я полагаю.
если "
не работает, тогда попробуйте "
вместо.
Использовать "
Это должно сработать.
Ответ Одедса почти завершен. Только одно.
- Escape xml специальные символы, такие как Эмануэле Греко.
- Поместите пароль в одинарные кавычки, например, Одед
- (этот новый) Escape single ticks с другим одним тиком ( ref )
имея этот пароль = “‘; это может быть допустимая строка подключения:
connectionString='Server=dbsrv;User ID=myDbUser;Password='"&&;'