Не буквенно-цифровой (без точки с запятой) в строке подключения
Я искал во всем Интернете простое решение моей проблемы, но я нахожу странным, что ни у кого нет способа "получить правильную строку подключения, если пароль содержит не алфавитно-цифровые символы".
Моя проблема:
У меня есть пользователь, у которого есть пароль, содержащий один или несколько из следующих символов:
` ~ ! @ # $ % ^ & * ( ) _ + - = { } | \ : " ; ' < > ? , . /
Так как формат строки подключения - "KEY=VALUE;KEY2=VALUE2", возникает проблема, если пароль, конечно, содержит точку с запятой.
Поэтому я провел небольшое исследование и нашел эти "правила подключения"
Все пустые символы, кроме тех, которые помещены в значение или в кавычки, игнорируются
Пустые символы будут влиять на механизм пула соединений, соединения в пуле должны иметь точно такую же строку соединения
Если точка с запятой (;) является частью значения, оно должно быть заключено в кавычки (")
Используйте одинарную кавычку ('), если значение начинается с двойной кавычки (")
И наоборот, используйте двойную кавычку ("), если значение начинается с одинарной кавычки (')
Escape-последовательности не поддерживаются
Тип значения не имеет значения
Имена в кейсе
Если пара KEYWORD=VALUE встречается в строке подключения более одного раза, используется значение, связанное с последним вхождением
Однако, если ключевое слово провайдера встречается в строке несколько раз, используется первое вхождение.
Если ключевое слово содержит знак равенства (=), ему должен предшествовать дополнительный знак равенства, чтобы указать, что оно является частью ключевого слова.
Если значение имеет предшествующие или конечные пробелы, оно должно быть заключено в одинарные или двойные кавычки, т.е. Keyword=" value ", в противном случае пробелы удаляются.
Затем я прочитал несколько веток, в которых люди пытаются внедрить вышеупомянутые вещи в свой "Метод строки подключения формата", но мне показалось, что когда они начали, появилось еще больше сценариев.
Мой вопрос тогда:
Есть ли кто-то, кто создал метод "FormatConnectionstring" для использования в строке соединения - или я здесь что-то делаю не так, и моя проблема действительно существует в другом месте?
1 ответ
Использование SqlConnectionStringBuilder
; или:
- установить свойства, читать
ConnectionString
(создавать) - задавать
ConnectionString
, читать свойства (разобрать)