연결 문자열에 앰퍼샌드를 포함하는 방법은 무엇입니까?
간단한 앱에 Entity Framework 4를 사용하고 있으며 연결 자격 증명을 다음 연결 문자열에 굽고 싶습니다.
<connectionStrings>
<add name="MyEntities"
connectionString="metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost\DEV;Initial Catalog=MyDB;UserId=myUser;Password=jack&jill;MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
</connectionStrings>
그러나 암호 (변경할 수 없음)에는 앰퍼샌드가 포함되어 있습니다. ASP.NET은 다음을 던집니다.Configuration Error: An error occurred while parsing EntityName. Line XX, position YYY.
내가와 암호에 앰퍼샌드를 교체하는 경우 &
, 내가 얻을 SqlException: Login failed for user 'myUser'.
보통이 트릭 작품,하지만 난 뭔가를 추측하고있어이 기술적으로 연결 문자열 내부의 연결 문자열이기 때문에 실패입니다.
여기서 무엇을해야합니까? 대부분의 수업에는 다음과 같은 코드가 포함됩니다.
using (var context = new MyEntities()) {
// do work
}
업데이트 : 사용중인 자격 증명이 도메인 계정 인 것으로 밝혀 졌으므로 실제로 필요한 것은 Integrated Security=True
암호가 아닌 연결 문자열에 있습니다.
허용 대답에 표시된대로 앰퍼샌드를 인코딩 해야 내가 그것을 테스트하지 않았습니다하지만, 잘 작동합니다.
모든 .config 파일 인 XML 문서에서와 같이 이스케이프 시퀀스를 사용해야합니다.
- 앰퍼샌드 = & =
&
- 보다 큼 => =
>
- 보다 작음 = <=
<
- 아포스트로피 = '=
'
- 인용구 = "=
"
CDATA
이러한 잘못된 문자를 사용할 수 있도록 태그를 사용할 수도 있습니다.
<![CDATA[
그리고 끝 ]]>
<connectionStrings>
<add name="MyEntities" connectionString="
metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;
provider=System.Data.SqlClient;
provider connection string="
Data Source=localhost\DEV;
Initial Catalog=MyDB;UserId=myUser;
Password=<![CDATA[jack&jill]]>;
MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
</connectionStrings>
참조 URL : https://stackoverflow.com/questions/3824351/how-to-include-ampersand-in-connection-string
'programing' 카테고리의 다른 글
실제 테이블 대. (0) | 2021.01.14 |
---|---|
Python-이미지에서 주된 / 가장 일반적인 색상 찾기 (0) | 2021.01.14 |
명부 (0) | 2021.01.14 |
vim에서 X 개의 문자를 어떻게 잡아 당기나요? (0) | 2021.01.14 |
Flask와 Tornado를 함께 사용하십니까? (0) | 2021.01.14 |