.NET 6에서 HttpClient에 특정 인증서 추가
3690 단어 csharptutorialprogramming
물론 스마트 카드 자체는 Windows의 개인 인증서 저장소에 이미 설치된 인증서의 사용을 인증하는 용도로만 사용되지만 어떻게든 이를 요청에 추가해야 합니다.
필수 단계:
충분히 간단해 보이므로 시작하겠습니다. 먼저 개인 인증서 저장소에 액세스해야 합니다.
var store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
이 두 줄은 먼저 현재 사용자의 개인 저장소에 액세스하기 위한 개체를 만든 다음 읽기 전용 모드로 엽니다. 아무것도 변경할 권한이 필요하지 않으므로 ReadOnly로 충분합니다.
이제 인증서를 찾아봅시다. 내 예에서 가장 쉬운 방법은 IssuerName을 사용하는 것입니다. 이 특정 이름을 가진 항목이 하나만 있기 때문입니다. 귀하에게 더 적합한 다른 부동산을 찾고 싶을 수도 있습니다.
var certificate = store.Certificates.First(cert => cert.IssuerName.Name == "ISSUER_NAME");
이 줄은 우리의 요구 사항에 맞는 IssuerName이 있는 첫 번째 인증서를 찾습니다. 이제 가지고 있으므로 클라이언트에 추가하겠습니다.
이를 위해서는 먼저 HttpClient() 개체를 만드는 데 사용할 HttpClientHandler()를 만들어야 합니다.
var clientHandler = new HttpClientHandler();
clientHandler.ClientCertificates.Add(certificate);
var client = new HttpClient(clientHandler);
보시다시피 핸들러 생성과 이를 사용하여 클라이언트 생성 사이에 인증서를 추가했습니다. 이제 클라이언트가 기본적으로 사용하기 때문에 더 이상 걱정할 필요가 없습니다.
나머지 작업은 표준 방식으로 요청을 수행하는 것입니다.
client.BaseAddress = new Uri("https://service.service");
var result = await client.GetAsync("/endpoint");
이 요청은 추가된 인증서를 사용하여 서비스에 대한 권한을 부여하며 모든 것이 잘 작동해야 합니다. 문제가 해결되었고 이제 정말 지루한 작업을 자동화할 수 있습니다. 여러분도 그렇게 할 수 있습니다 ;)
이 기사는 내 개인 블로그https://rumpel.dev에 처음 게시되었습니다.
Reference
이 문제에 관하여(.NET 6에서 HttpClient에 특정 인증서 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hanewali/adding-specific-certificate-to-httpclient-in-net-6-n07텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)