programing

연결 문자열에 앰퍼샌드를 포함하는 방법은 무엇입니까?

oldcodes 2023. 6. 18. 16:17
반응형

연결 문자열에 앰퍼샌드를 포함하는 방법은 무엇입니까?

간단한 앱에 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=&quot;Data Source=localhost\DEV;Initial Catalog=MyDB;UserId=myUser;Password=jack&jill;MultipleActiveResultSets=True&quot;" 
         providerName="System.Data.EntityClient" />
</connectionStrings>

그러나 암호(변경할 수 없음)에 앰퍼샌드가 포함되어 있습니다. ASP.NET은 다음을 던집니다.Configuration Error: An error occurred while parsing EntityName. Line XX, position YYY.

암호의 앰퍼샌드를 다음으로 바꾸면,&amp;나는SqlException: Login failed for user 'myUser'.일반적으로 이 트릭은 효과가 있지만, 기술적으로 연결 문자열 내부에 있는 연결 문자열이기 때문에 무언가 실패하고 있다고 생각합니다.

제가 여기서 무엇을 해야 합니까?대부분의 수업에는 다음과 같은 코드가 포함되어 있습니다.

using (var context = new MyEntities()) {
   // do work
}

업데이트: 내가 사용하고 있는 자격 증명이 도메인 계정인 것으로 밝혀졌으므로 내가 정말로 필요로 하는 것은Integrated Security=True암호가 아닌 연결 문자열에 있습니다.

아직 테스트하지 않았지만 승인된 답변에 표시된 앰퍼샌드를 인코딩하는 것은 잘 작동할 것입니다.

.config 파일이 전부인 XML 문서에 대해 사용하는 것처럼 이스케이프 시퀀스를 사용해야 합니다.

  • 앰퍼샌드 = & =&amp;
  • = > =보다 큼&gt;
  • = 미만 < =&lt;
  • 아포스트로피 = ' =&apos;
  • 인용문 = " =&quot;

사용할 수도 있습니다.CDATA이러한 불법적인 문자를 사용할 수 있도록 태그를 지정합니다.

<![CDATA[로 끝납니다.]]>

<connectionStrings>
    <add name="MyEntities" connectionString="
        metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;
        provider=System.Data.SqlClient;
        provider connection string=&quot;
        Data Source=localhost\DEV;
        Initial Catalog=MyDB;UserId=myUser;
        Password=<![CDATA[jack&jill]]>;
        MultipleActiveResultSets=True&quot;" 
        providerName="System.Data.EntityClient" />
</connectionStrings>

언급URL : https://stackoverflow.com/questions/3824351/how-to-include-ampersand-in-connection-string

반응형