Eu tenho uma string de conexão na minha configuração da web:
<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" providerName="System.Data.SqlClient" />
Como você pode ver, há um sinal de aspas (") na senha (fornecida por outro departamento. Não consigo alterar a senha dos usuários do banco de dados).
Como faço para escapar da citação nesta string de conexão?
Aliás: eu já tentei & quot; na corda. Isso não funcionou - ado.net obteve uma ArgumenException então: "O formato da string de inicialização não está de acordo com a especificação que começa no índice 57." 57 é onde o & quot; está na minha string de conexão. Eu também tentei incluir a parte da senha em '- também não funcionou.
Também tentei "" e \ "- o web.config não pode ser analisado.
Obrigado pela solução:
Tive que combinar o escape das aspas duplas e colocar a senha entre aspas simples:
<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'" providerName="System.Data.SqlClient" />
fonte
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word"
Como o web.config é XML, você precisa escapar os cinco caracteres especiais:
&
-> E&
comercial, U + 0026<
-><
colchete angular esquerdo, sinal menor que, U + 003C>
->>
colchete angular direito, sinal maior que, U + 003E"
->"
aspas, U + 0022'
->'
apóstrofo, U + 0027+ não é um problema, suponho.
Duc Filan acrescenta: Você também deve envolver sua senha com aspas simples
'
:connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'"
fonte
;
personagem?se
não estiver funcionando, tente"
."
fonte
A resposta de Odeds está quase completa. Só uma coisa a acrescentar.
tendo esta senha = "'; deve ser uma string de conexão válida:
connectionString='Server=dbsrv;User ID=myDbUser;Password='"&&;'
fonte
password='''';
é válido. Mas sua sugestão é a única coisa que funcionou para mim. Isso também é usado em outros esquemas de escape.Use
"
Isso deve funcionar.fonte