2012-06-15 3 views
2

암호화 된 연결 문자열을 외부 구성 파일에 보관하고 ASP의 web.config의 connectionStrings 섹션에 configSource 특성으로 지정하면 암호화 된 연결 문자열을 C# 코드에서 읽는 방법 .net 응용 프로그램?web.config의 암호화 된 연결 문자열

외부 구성 파일에는 connectionStrings 노드 만 있어야하지만 암호화 된 경우 configDataProvider 노드도 같은 파일에 있어야합니다. 따라서 configSource 속성에는 사용할 수 없습니다.

암호화 된 연결 문자열이 있으며 외부 구성 파일에 저장하려고합니다. 어떻게 처리 할 수 ​​있습니까?

모든 포인터 주셔서 감사합니다. 당신의 app.config에서

+0

당신이에 연결 문자열 섹션을 넣어 시도해 봤어 :

<connectionStrings configProtectionProvider="DataProtectionConfigurationProvider"> <EncryptedData> <CipherData> <CipherValue> AQAAANCMnd8BFdE.... </CipherValue> </CipherData> </EncryptedData> </connectionStrings> 

및 코드에서

외부 파일 및 _then_ 암호화? – Oded

+0

날짜가 조금 지났지 만 다음 해결책을 시도해 볼 수 있습니다 : [ASP.NET의 외부 설정에서 문자열 암호화하기] (http://gregorybeamer.wordpress.com/2008/12/04/encrypting-string-in-an-external) -config-for-asp-net /) – Jeremy

+0

외부 파일에 저장 한 다음 암호화하면 configProtectedData 노드가 삽입 된 후 configSource 속성을 사용하여 읽을 수 없습니다. – Sam

답변

3

:

<configuration> 
    <connectionStrings configSource="foo.config" /> 
    ... 
</configuration> 

과에 foo.config :

ConfigurationManager.ConnectionStrings["someKey"] 
+0

일반 텍스트로 foo.config를 만들고 배포 중에 암호화하고 원하는 노드를 수동으로 삭제하지 않아도되도록하고 싶습니다. – Sam

+0

@Sam, 암호화가 어떻게 수행되는지 읽으십시오 : http://msdn.microsoft.com/en-us/library/ff647398.aspx. 프로세스는 물론 스크립트 및 자동화 될 수 있습니다. 내가 보여준 것은 구성이 런타임에서 어떻게 보여야하는지입니다. 이 구성에 도달하려면 연결 문자열을 포함하는 암호화되지 않은 파일을 가지고 문서에 설명 된 암호화 프로세스를 스크립팅 할 수 있습니다. 따라서이 문서를 읽고이 프로세스를 이해하면 빌드 중에 스크립트를 작성할 수 있습니다. –

+0

connectionString을 별도의 파일 foo.config로 사용합니다. 예를 들어, 배포 중에 foo.config에 configProtectedData 노드를 삽입 할 -prov "Myprovider"스위치를 사용하여 스크립트를 사용하여 암호화합니다. 그러면 "configSource 파일의 형식이 섹션의 이름을 포함하는 요소 여야합니다."라는 오류가 발생합니다. C# 코드 내에서 액세스 할 때. 내가 놓친 게 있니? – Sam

관련 문제