[asp.net] web.config 연결 문자열의 이스케이프 따옴표

내 웹 구성에 연결 문자열이 있습니다.

<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" providerName="System.Data.SqlClient" />

보시다시피 암호에 인용 부호 ( “)가 있습니다 (다른 부서에서 제공했습니다.이 db 사용자 암호를 변경할 수 없습니다).

이 연결 문자열에서 따옴표를 어떻게 이스케이프해야합니까?

Btw : 나는 이미 시도했다 & quot; 문자열에서. 작동하지 않았습니다. ado.net에서 ArgumenException이 발생했습니다. “초기화 문자열의 형식이 인덱스 57에서 시작하는 사양을 따르지 않습니다.” 57은 & quot; 내 연결 문자열에 있습니다. 나는 또한 암호 부분을 ‘-‘로 묶어 보았지만 작동하지 않았습니다.

“”및 \ “도 시도했습니다-web.config를 구문 분석 할 수 없습니다.

솔루션에 감사드립니다.

큰 따옴표를 이스케이프 처리하고 암호를 작은 따옴표로 묶어야했습니다.

<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass&quot;word'" providerName="System.Data.SqlClient" />



답변

탈출하는 &quot;대신 사용하십시오 ".

web.config는 XML 파일이므로 XML 이스케이프를 사용해야합니다.

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

포럼 스레드를 참조하십시오 .

업데이트 :

&quot;작동하지만 그렇지 않은 경우 .NET에 대한 다른 문자열 이스케이프 시퀀스를 시도해 보셨습니까? \"그리고 ""?

업데이트 2 :

connectionString에 작은 따옴표를 사용해보십시오.

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

또는:

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

업데이트 3 :

에서 MSDN (SqlConnection.ConnectionString 재산권) :

세미콜론, 작은 따옴표 또는 큰 따옴표 문자가 포함 된 값을 포함하려면 값을 큰 따옴표로 묶어야합니다. 값에 세미콜론과 큰 따옴표가 모두 포함 된 경우 값을 작은 따옴표로 묶을 수 있습니다.

그래서:

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

문제는 web.config가 아니라 연결 문자열의 형식입니다. 연결 문자열 "에서 in 값 (키-값 쌍)이있는 경우 값을 '. 따라서 Password=somepass"word작동하지 않지만 작동 Password='somepass"word'합니다.


답변

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

web.config는 XML이므로 5 개의 특수 문자를 이스케이프해야합니다.

&amp;-> & 앰퍼샌드, U + 0026-
&lt; > < 왼쪽 꺾쇠 괄호,보다 작음 기호, U + 003C-
&gt; > > 오른쪽 꺾쇠 괄호,보다 큼 기호, U + 003E-
&quot; > " 따옴표 , U + 0022-
&apos; > ' 아포스트로피, U + 0027

+ 는 문제가되지 않습니다.


Duc Filan은 다음과 같이 덧붙입니다. 또한 암호를 작은 따옴표로 묶어야합니다 '.

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


답변

경우 &quot;다음 작동하지 않는 시도 &#34;대신에.


답변

Odeds 답변이 거의 완료되었습니다. 추가 할 한 가지.

  1. Emanuele Greco와 같은 XML 특수 문자를 이스케이프하십시오.
  2. Oded가 말한 것처럼 암호를 작은 따옴표로 묶으십시오.
  3. (이것은 새로운 것입니다) 다른 단일 틱으로 단일 틱 탈출 ( ref )

이 password = ” ‘가있는 경우 유효한 연결 문자열이됩니다.

connectionString='Server=dbsrv;User ID=myDbUser;Password='&quot;&amp;&amp;;'


답변

사용하여 &quot;그 작동합니다.


답변