ASPNET 사용자 계정으로 개인 키에 액세스하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/167252

  •  03-07-2019
  •  | 
  •  

문제

ASPNET 사용자와 함께 개인 키를 가져오고 액세스하는 데 어려움이 있습니다. Windows에서 개인 키 (.pfx 파일)를 수동으로 가져 오면 키를 내보낼 수있는 것으로 표시 할 수있는 옵션이 나타납니다. 이제 내가 알 수있는 한, 이것은 나중에 해당 개인 키를 검색하기 위해 필요합니다.

내 문제는 ASPNET 사용자로서 개인 키를 코드로 가져오고 있으며 Windows 인증서 가져 오기 마법사가하는 방식으로 내보낼 수있는 것으로 표시 할 수있는 방법이없는 것 같습니다. 명확히하기 위해, 가져 오기는 잘 작동하지만, 현재 추천 인증서에 대한 세부 정보에 액세스 할 때 개인 키 데이터는 없습니다.

이것은 올바른 비밀번호로 .pfx 파일을 이미 열었을 때 인증서를 가져 오기 위해 사용하는 코드입니다.

public void ImportCertificate(X509Certificate2 cert, StoreName name, StoreLocation loc)
{
    X509Store certStore = new X509Store(name, loc);
    StorePermission permission = new StorePermission(PermissionState.Unrestricted);
    permission.Flags = StorePermissionFlags.AddToStore;
    permission.Assert();
    certStore.Open(OpenFlags.ReadWrite);
    certStore.Add(cert);
    certStore.Close();
}

권한이나이 개인 키를 가져 오는 방식을 정리하고 있습니까? 아니면 내가 이것에 대해 완전히 잘못된 방식으로 가고 있습니까?

도움이 되었습니까?

해결책

인증서를 가져올 때 x509keyStorageFlags.Exportable 플래그를 설정해야한다고 생각합니다. 해당 코드를 표시하지 않지만이 서명에는 가져 오기 메소드의 과부하가 있습니다.

public override void Import(string fileName, string password, 
                            X509KeyStorageFlags keyStorageFlags);

또는 이것은 :

public override void Import(byte[] rawData, string password, 
                            X509KeyStorageFlags keyStorageFlags);

가져 오기 전에 설정할 수 있습니다. 그렇지 않으면 모든 것이 좋아 보인다!

리차드

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top