2011-02-13 3 views
1

내 컴퓨터의 RSACryptoServiceProvider에 몇 가지 문제가 있습니다. 이미 예외가RSACryptoServiceProvider 문제

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); 

, CspKeyContainerInfo 속성에서 : A는 새 인스턴스를 만들 경우

  • 내보낼 수 '는 rsa.CspKeyContainerInfo.Exportable'형식의 예외가 발생했습니다에서는 System.Security.Cryptography .CryptographicException '부울 {System.Security.Cryptography.CryptographicException}

  • 베이스 { "키가 존재하지 않습니다 있습니다. \ r \ n"} System.SystemException {System.Security.Cryptography.CryptographicException을}

다른 PC에서 동일한 코드를 사용해도 모든 것이 정상적으로 작동합니다. 내 PC에 두 가지 설정이 제대로 구성되어 있는지 확인하고 구성이 지연되고 있는지 확인할 수있는 설정이 있습니까? 무엇이 문제인지에 대한 단서가 있습니까?

감사

편집 : 에만 프레임 워크 4.0에 일어나는 그것은의를 보인다. 어떤 단서?

답변

2

나는 그걸 만들 수있었습니다.

  CspParameters parms = new CspParameters(); 
      parms.Flags = CspProviderFlags.NoFlags; 
      parms.KeyContainerName = Guid.NewGuid().ToString().ToUpperInvariant(); 
      parms.ProviderType = ((Environment.OSVersion.Version.Major > 5) || ((Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor >= 1))) ? 0x18 : 1; 

      RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(parms); 

왜 그런지 모르겠지만 그와 같습니다. 누군가이 동작을하는 이유를 알고 있고, 의견을 환영합니다.

감사

+0

KeyContainerName을 NewGuid로 설정하면 나에게 트릭이 생겼다. 공유 해줘서 고마워! – BrandonLWhite

0

당신은 윈도우 레지스트리에서 공급자 유형을 얻을 수 있습니다 : 당신이 원하는 유형 값을 확인 공급자에 대한 마이크로 소프트 \ 암호화 \ 기본값 \ 제공자 \

봐 \ LOCAL_MACHINE \ 소프트웨어 \ . ..