stand-alone 방식으로 스마트클라이언트 모듈을 개발 하였습니다.
배포한 후 문제가 있는데요...
app.config 에 DB 연결정보랑 기타 필요한 변수들을 정의하였습니다.
1. 제일 처음 격은 문제는 사용자가 모듈을 실행시키면 exe.config 를 못읽어서
(Fiddler2로 보니 404에러가 나더군요..) IIS단에서 exe.config를 다운로드 할 수 있게 설정을 변경하였습니다.
2. 두번째 문제는 그렇게 다운로드 하게끔 해주닌까 모듈은 잘 실행되는데 정작 중요한 DB연결 정보등이 그래도 노출되는 문제가 생겼습니다..
http://111.111.111.111/a.exe.config <-- 이렇게 치면 고스란히 config 내용이 보여지더군요..
그래서 config를 서버에서 다음과 같은 방법으로 암호화 하였습니다.
aspnet_regiis -pc "Key이름" -exp
aspnet_regiis -pa "Key이름" "NT Authority\Network Service"
config 에 다음과 같은 문구 추가----------------------------------------------
<configProtectedData>
<providers>
<add name="Provider이름" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" keyContainerName="Key이름" useMachineContainer="true" />
</providers>
</configProtectedData>
exe.config 파일명을 web.config로 바꾸고
aspnet_regiis -pef "connectionStrings" C:\inetpub\wwwroot -prov "Provider이름"
aspnet_regiis -pef "appSettings" C:\inetpub\wwwroot -prov "Provider이름"
web.config를 다시 exe.config로 이름변경
aspnet_regiis -px "Key이름" "c:\Container.xml" -pri
이와 같이 암호화 하고 생성된 Container.xml를 모듈을 설치할때 사용자 컴에
aspnet_regiis -pi "Key이름" "c:\경로\Container.xml" 방식으로 등록 하였습니다.
3. 여기서 Container.xml를 알면 복호화도 가능할것 같은데....
요지는 exe.config를 다운받게 안하면서도 모듈에서 exe.config값을 읽을수 있는지 궁급합니다.
[최초 등록일: ]
[최종 수정일: 4/4/2012]