Citazione di fuga nella stringa di connessione web.config

Ho una stringa di connessione nella mia configurazione web:

 

Come vedi, c’è un segno di virgolette (“) nella password (fornita da altro dept. Non posso cambiare questa password degli utenti db).

Come devo sfuggire alla citazione in questa stringa di connessione?

Btw: ho già provato & quot; nella stringa. Ciò non ha funzionato: ado.net ha ottenuto quindi ArgumenException: “Il formato della stringa di inizializzazione non è conforms alle specifiche a partire dall’indice 57.” 57 è dove il & quot; è nella mia stringa di connessione. Ho anche provato a racchiudere la parte della password in ‘- non ha funzionato neanche.

Anche provato “” e \ “- web.config non può essere analizzato allora.

Grazie per la soluzione:

Ho dovuto combinare l’escape della doppia citazione e inserire la password tra virgolette singole:

  

Usa " invece di " fuggire.

web.config è un file XML, quindi è necessario utilizzare l’escape XML.

 connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" 

Vedi questo thread del forum.

Aggiornamento :

" dovrebbe funzionare, ma come non funziona, hai provato alcune delle altre sequenze di escape delle stringhe per .NET? \" e "" ?

Aggiornamento 2:

Prova le virgolette singole per connectionString:

 connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word' 

O:

 connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word' 

Aggiornamento 3:

Da MSDN (proprietà SqlConnection.ConnectionString):

Per includere valori che contengono un punto e virgola, un carattere a virgoletta singola o un carattere a virgolette doppie, il valore deve essere racchiuso tra virgolette doppie. Se il valore contiene sia un punto e virgola che un carattere a virgoletta doppia, il valore può essere racchiuso tra virgolette singole.

Così:

 connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'" 

Il problema non è con web.config, ma con il formato della stringa di connessione. In una stringa di connessione, se si ha un " in un valore (della coppia chiave-valore), è necessario racchiudere il valore in ' . Quindi, mentre la Password=somepass"word non funziona, Password='somepass"word' lo fa.

 connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" 

Dato che web.config è XML, devi sfuggire ai cinque caratteri speciali:

& -> & ampersand, U + 0026
< -> < parentesi angular sinistra, segno minore di, U + 003C
> ->> staffa ad angolo retto, segno più grande di, U + 003E
" -> " Virgolette, U + 0022
' -> ' apostrofo, U + 0027

+ non è un problema, suppongo.

se " non funziona, quindi prova " anziché.

Usa " Questo dovrebbe funzionare

La risposta alle odine è quasi completa. Solo una cosa da aggiungere.

  1. Fuga di caratteri speciali xml come ha detto Emanuele Greco.
  2. Metti la password tra virgolette come ha detto Oded
  3. (questo è nuovo) Esci dai singoli tick con un altro tick singolo ( ref )

avendo questa password = “‘; questa potrebbe essere una stringa di connessione valida:

 connectionString='Server=dbsrv;User ID=myDbUser;Password='"&&;'