2012-03-20 4 views
2

RSA 제공자를 사용하여 web.config를 암호화하기 위해 다음을 수행했습니다.asp.net web.config 암호화 - RSA 키 컨테이너를 찾을 수 없습니다.

웹 서버에 RDP를 설치하고 내 계정으로 VS 명령 프롬프트를 열었습니다.

사용자 지정 RSA 암호화 키 생성 :

aspnet_regiis -pc "MyKey" -exp

암호화 사용자 지정 RSA 키를 사용하여 connectionStrings 섹션 :

aspnet_regiis.exe -pef "connectionStrings" "D:\Web\" -prov "MyRsaProvider"

내가 Web.config의 암호화 된 것을 볼 수 있습니다. 내가 다음에 다음 명령어를 하나씩 시도하고 테스트

"....The RSA key container was not found."

:

aspnet_regiis -pa "MyKey" "domain\appPool_serviceAccount"

aspnet_regiis -pa "MyKey" "ASPNET"

aspnet_regiis -pa MyKey" IIS APPPOOL\CRSAppPool" -full

aspnet_regiis -pa "MyKey" "NT Authority\Network Service"

을, 나는이 오류가 계속 얻을 :

을 나는 웹 페이지를로드 할 때 그러나 아래에서 오류가 발생합니다

"....The RSA key container was not found."

프레임 워크 버그인지 여부에 관계없이 도움이 될만한 사람이 있습니까?

+0

그 명령은 –

답변

1

웹 응용 프로그램 풀이 실행되고 있는지 확인하십시오.

시도해보십시오. 당신이 다음을 탐색 원하는대로이 내용

<%@ Page Language="C#" %> 
<% 
    Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name); 
%> 

전화를 사용하여 웹 응용 프로그램의 aspx 페이지를 만들고 그것은 당신에게 웹 응용 프로그램이 사용하고있는 실제 신원을 줄 것이다. 해당 사용자의 키에 대한 액세스 권한을 아직 부여하지 않은 경우이를 부여하고 작동하는지 확인하십시오.

참조 : Walkthrough: Creating and Exporting an RSA Key Container

1

그냥이 시도하고 작동

경우 aspnet_regiis -PX "MyKeys" "C : \ 문서 및 설정 \ 응용 프로그램 데이터 \ 마이크로 소프트 \ 암호화 \ RSA \ 모든 사용자 \ MachineKeys \ keys.xml "-pri

모든 키는

+0

C는 관리자 권한으로 cmd를 프롬프트에서 작업 :하고 DB 연결시 나는 응용 프로그램 풀 ID를 가정 해결하려면 –

0

당신의 Web.config 올바른 암호화 헤더가 포함되어 있는가가 저장됩니다?

<configuration> 
    <configProtectedData defaultProvider="MyRsaProvider"> 
<providers> 
    <add name="MyRsaProvider" 
    type="System.Configuration.RsaProtectedConfigurationProvider, 
      System.Configuration, Version=2.0.0.0, Culture=neutral, 
      PublicKeyToken=b03f5f7f11d50a3a, 
      processorArchitecture=MSIL" 
    keyContainerName="MyKeys" 
    useMachineContainer="true" /> 
</providers> 

는 여기를 참조하십시오 : http://msdn.microsoft.com/en-us/library/68ze1hb2(v=vs.100).aspx

1

는 나에게이 문제는 내 웹 응용 프로그램을 가장 할 모드와 나는 키에 액세스하지 않았다 사칭 한 사용자에서 실행 된 것이 었습니다. \ 사용자 \ 모든 사용자 서버 2012에서 Microsoft \ 암호화 \ RSA \의 MachineKeys을 : \

  var revert = new RevertToAppPool(); 
      revert.UseAppPoolIdentity(); 
      database = DB.GetDatabase(); 
      revert.ReturnToImpersonatingCurrentUser();