programing

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

kakaobank 2023. 5. 17. 23:19
반응형

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="Server=dbsrv;User ID=myDbUser;Password='somepass&quot;word'"

문제는 web.config가 아니라 연결 문자열의 형식에 있습니다.연결 문자열의 경우"(키-값 쌍의) 값에 값을 포함해야 합니다.'그래서 지금은 동안에.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

제 생각에는 문제가 되지 않을 것 같습니다.


듀크 필란은 다음과 같이 덧붙입니다.또한 암호를 따옴표 하나로 묶어야 합니다.':

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

한다면&quot;작동하지 않습니다. 그럼 시도해 보십시오.&#34;대신.

오데스 답변이 거의 완료되었습니다.한 가지만 덧붙일 게 있습니다.

  1. Emanuelle Greche가 말한 것처럼 이스케이프 xml 특수 문자.
  2. Oded가 말한 것처럼 암호를 작은따옴표로 묶습니다.
  3. (새 항목) 다른 단일 눈금으로 단일 눈금 이스케이프(ref)

다음 암호를 사용합니다. =". 유효한 연결 문자열이어야 합니다.

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

사용하다&quot;그러면 되겠군요.

언급URL : https://stackoverflow.com/questions/3177861/escape-quote-in-web-config-connection-string

반응형