2008-12-11 18 views
5

Estoy haciendo un componente que utiliza algunos datos para conectarse a una base de datos, estos datos incluyen identificación de usuario y contraseña, almacena esos valores en variables privadas pero cualquier programador puede ver el valor en el depurador después de la inicialización, entonces me pregunto cómo funciona SqlConnection para ocultar ese valor, cuando veo el valor de la propiedad ConnectionString veo toda la información excepto la contraseña, la almacena en algún lado pero no la hace visible, incluso en el depurador no puedo ver ninguna variable que esté almacenando la contraseña, sé que puedo protegerla usando SecureString pero me pregunto cómo es la implementación del objeto SqlConnection.cómo sqlConnection oculta la contraseña de la cadena de conexión

Gracias.

Juan Zamudio

Respuesta

2

Desde el manual:

El ConnectionString es similar a una cadena de conexión OLE DB , pero no es idéntico. A diferencia de OLE DB o ADO, la cadena conexión que se devuelve es el mismo que el establecido por el usuario ConnectionString, menos seguridad información si el valor de Seguridad Persiste la información se establece en false (valor predeterminado). El proveedor de datos de .NET Framework para SQL Server no persiste o devuelve la contraseña en una cadena de conexión a menos que establezca Persist Security Info en true.

No estoy seguro de cómo se implementa esto. Mi suposición no verificada es que llena una estructura con los parámetros de seguridad que luego envía al servidor, nunca los almacena a menos que establezca Persist Security Info en verdadero.

Cuestiones relacionadas