내 웹 구성에 연결 문자열이 있습니다.
<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"word'" providerName="System.Data.SqlClient" />
답변
탈출하는 "
대신 사용하십시오 "
.
web.config는 XML 파일이므로 XML 이스케이프를 사용해야합니다.
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word"
이 포럼 스레드를 참조하십시오 .
업데이트 :
"
작동하지만 그렇지 않은 경우 .NET에 대한 다른 문자열 이스케이프 시퀀스를 시도해 보셨습니까? \"
그리고 ""
?
업데이트 2 :
connectionString에 작은 따옴표를 사용해보십시오.
connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word'
또는:
connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word'
업데이트 3 :
에서 MSDN (SqlConnection.ConnectionString 재산권) :
세미콜론, 작은 따옴표 또는 큰 따옴표 문자가 포함 된 값을 포함하려면 값을 큰 따옴표로 묶어야합니다. 값에 세미콜론과 큰 따옴표가 모두 포함 된 경우 값을 작은 따옴표로 묶을 수 있습니다.
그래서:
connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'"
문제는 web.config가 아니라 연결 문자열의 형식입니다. 연결 문자열 "
에서 in 값 (키-값 쌍)이있는 경우 값을 '
. 따라서 Password=somepass"word
작동하지 않지만 작동 Password='somepass"word'
합니다.
답변
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word"
web.config는 XML이므로 5 개의 특수 문자를 이스케이프해야합니다.
&
-> &
앰퍼샌드, U + 0026-
<
> <
왼쪽 꺾쇠 괄호,보다 작음 기호, U + 003C-
>
> >
오른쪽 꺾쇠 괄호,보다 큼 기호, U + 003E-
"
> "
따옴표 , U + 0022-
'
> '
아포스트로피, U + 0027
+ 는 문제가되지 않습니다.
Duc Filan은 다음과 같이 덧붙입니다. 또한 암호를 작은 따옴표로 묶어야합니다 '
.
connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'"
답변
경우
다음 작동하지 않는 시도 "
대신에."
답변
Odeds 답변이 거의 완료되었습니다. 추가 할 한 가지.
- Emanuele Greco와 같은 XML 특수 문자를 이스케이프하십시오.
- Oded가 말한 것처럼 암호를 작은 따옴표로 묶으십시오.
- (이것은 새로운 것입니다) 다른 단일 틱으로 단일 틱 탈출 ( ref )
이 password = ” ‘가있는 경우 유효한 연결 문자열이됩니다.
connectionString='Server=dbsrv;User ID=myDbUser;Password='"&&;'
답변
사용하여 "
그 작동합니다.