estoy usando Entity Framework 4 para una aplicación sencilla y me gustaría hornear mis credenciales de conexión en la cadena de conexión:¿Cómo incluir ampersand en la cadena de conexión?
<connectionStrings>
<add name="MyEntities"
connectionString="metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost\DEV;Initial Catalog=MyDB;UserId=myUser;Password=jack&jill;MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
</connectionStrings>
Sin embargo, la contraseña (que no puedo cambiar) contiene un símbolo de unión. ASP.NET lanza: Configuration Error: An error occurred while parsing EntityName. Line XX, position YYY.
Si puedo reemplazar el signo de la contraseña con &
, consigo un SqlException: Login failed for user 'myUser'.
Por lo general, este truco funciona, pero supongo que algo está fallando, porque esto es técnicamente una cadena de conexión en el interior de una conexión cuerda.
¿Qué debo hacer aquí? La mayoría de mis clases incluyen un código como:
using (var context = new MyEntities()) {
// do work
}
Actualización: Resulta que las credenciales que estoy usando son una cuenta de dominio, así que lo que realmente necesita es Integrated Security=True
en la cadena de conexión en lugar de una contraseña.
Codificando el ampersand como se indica en la respuesta aceptada debería funcionar bien, aunque no lo he probado.
Ya lo he intentado, como se señala en mi pregunta. Parece que la contraseña incorrecta se envía junto con Entity Framework. – user403830
Eso realmente debería ser todo lo que necesita para que funcione. – hunter
Además, intente iniciar sesión en la instancia de SQL Server utilizando las credenciales de su conexión fuera de su aplicación – hunter