как sqlConnection скрывает пароль строки подключения

Я делаю компонент, который использует некоторые данные для подключения к базе данных, эти данные включают в себя идентификатор пользователя и пароль, он хранит эти значения в приватных переменных, но любой программист может увидеть значение в отладчике после инициализации, поэтому мне интересно как SqlConnection скрывает это значение, когда я вижу значение свойства ConnectionString, я вижу всю информацию, кроме пароля, хранит его где-то, но не делает его видимым, даже в отладчике я не вижу ни одной переменной, хранящей пароль, я знаю, что могу защитить пароль с помощью SecureString, но мне интересно, как это реализация объекта SqlConnection.

Спасибо.

Хуан Самудио

11.12.2008 06:52:10
1 ОТВЕТ

Из руководства :

ConnectionString похожа на строку подключения OLE DB, но не идентична. В отличие от OLE DB или ADO, возвращаемая строка подключения совпадает с заданной пользователем ConnectionString, за исключением информации о безопасности, если для параметра Persist Security Info установлено значение false (по умолчанию). Поставщик данных .NET Framework для SQL Server не сохраняет данные и не возвращает пароль в строке подключения, если для параметра Persist Security Info не установлено значение true.

Я не уверен, как это реализовано. Мое непроверенное предположение состоит в том, что он заполняет структуру параметрами безопасности, которые он затем отправляет на сервер, фактически никогда не сохраняя их, если вы не установили для Persist Security Info значение true.

3
11.12.2008 07:54:18