2009-08-28 4 views
4

공유 호스팅 환경의 web.config 파일에서 연결 문자열을 암호화하고 싶습니다.공유 호스팅에서 web.config 암호화

주제 (http://msdn.microsoft.com/en-us/library/53tyfkaw.aspx)에 대한 MSDN의 기사를 대부분 읽었으며 RSAProtectedConfigurationProvider를 사용해야 만 주요 컨테이너가있는 구성 파일을 공유 호스팅 제공 업체로 내보낼 수 있다고 결론지었습니다. 그러나 이렇게하면 "RSA 키 컨테이너를 열 수 없습니다."라는 오류 메시지가 나타납니다. 내가 키 컨테이너에 aspnet 계정에 대한 액세스 권한을 부여해야하기 때문에 가정합니다,하지만 이것은 공유 호스트에있어 aspnet_regiis 도구를 사용하여 수행 할 수 있습니다.

global.asax에서 응용 프로그램 시작시 프로그램 적으로 암호화를 시도했지만 파일을 저장할 때 권한 오류가 발생합니다 - "구성 파일을로드하는 동안 오류가 발생했습니다 : 'C : \ Inetpub \ xxx 경로에 대한 액세스가 발생했습니다. \ YYY의 \의 3acp98k.tmp가 '거부됩니다. 공유가 제한 호스팅, 나는 가정합니다.

내가 공유 호스팅 환경을 그와 같은 경우 aspnet_regiis 도구를 실행할 수 없습니다.

사람이에 관해서는 어떤 아이디어가 있습니까 어떻게 수도 연결 문자열을 암호화 하시겠습니까?

답변

1

공유 할 수있는 호스트에 쓰기 권한을 부여하면됩니다. IIS 사용자 또는 파일 관리자에서 어쩌면 권한을 편집 할 수있는 웹 기반 도구를 제공하십시오. aspnet_regiis를 실행할 필요가 없습니다.

1

나는 답변으로 표시되지 않았 음을 알고 있으므로이 해결책을 얻지 못했다고 생각합니다. 단지 하나의 문제입니다. 그러나 유일한 문제인 경우 응용 프로그램에 구성 파일에 대한 쓰기 권한이 없습니다 (힌트 : FTP 계정에 쓰기 권한이 있음). 연결 문자열 설정을 읽는 ASPX 페이지를 작성하고 표시합니다. 암호화 된 Xml (암호로 보호 된 위치에 넣을 수 있습니다).

그런 다음 당신이해야 할 모든은 다음과 같습니다

  1. 업로드
  2. 암호화되지 않은 Web.config의를 만드는 것이
  3. 당신의 '디스플레이 암호화 connectionstrings 웹 페이지'
  4. 사본을 방문에 암호화 된 데이터를 붙여 로컬 웹 .config에
  5. 새로운 암호화 된 설정으로 web.config를 다시 업로드하십시오!
0

암호화 키를 생성하여 응용 프로그램의 폴더에 저장해야합니다. 이 키는 웹 사이트가 읽을 때마다 설정 파일이나 설정 섹션을 암호화하고 해독하는 데 사용됩니다. 기본 공급자는 RSACriptoServiceProvider입니다. 구성 파일이 암호화되어 업로드되었지만 암호화 키가 제공되지 않으면 자체적으로 암호화 해제 할 수 없습니다. 키는 구성 섹션이 해독되고 암호화 될 때마다 사용됩니다.

0

aspnet_regiis 도구는 -pef 및 -pdf 옵션을 사용하여 암호화 및 암호 해독에 사용됩니다. 동일한 도구를 사용하여 -pc 옵션을 사용하여 암호화 키를 생성합니다.이 옵션은 컴퓨터 수준에서 키 쌍을 만듭니다.

관련 문제