현재 로컬 사용자 컴퓨터에서 현재 사용자 인증서를 읽는 Asp.net 응용 프로그램을 개발 중입니다. 내 로컬 컴퓨터에서 잘 작동합니다. 응용 프로그램을 배포 할 때 IIS ... 내가 응용 프로그램 인증에 사용할 현재 사용자 인증서를 선택 할 수 없습니다보다 ...X.509 저장소에서 현재 사용자 인증서를 가져올 수 없습니다.
이 로컬 시스템에 대한 작업 벌금 코드 다음은..
다음public X509Certificate2 selectCert(StoreName store, StoreLocation Location , string windowTitle, string windowMsg)
{
X509Certificate2 certSelected = null;
X509Store x509Store = new X509Store(store);
x509Store.Open(OpenFlags.ReadWrite);
X509Certificate2Collection col = x509Store.Certificates;
X509Certificate2Collection sel = X509Certificate2UI.SelectFromCollection(col, windowTitle, windowMsg, X509SelectionFlag.SingleSelection);
if (sel.Count > 0)
{
X509Certificate2Enumerator en = sel.GetEnumerator();
en.MoveNext();
certSelected = en.Current;
}
x509Store.Close();
return certSelected;
}
x509Store.Certificates 현재 사용자 인증서의 일부 컬렉션을 반환 .. 하지만 ISS에서 배포 된 응용 프로그램을 실행할 때. x509Store.Certificates는 Sever에서 Empty Collection을 제공합니다 ... 현재 사용자 & certmgr.mmc를 통해 내 개인 상점을 확인했으며 인증서가 있다는 것을 확신합니다 ... 중대한 문제 해결하십시오 ... 나 일이 무엇 귀하의 IIS 응용 프로그램은 ASP가 인증서 저장소에 액세스 할 수있는 권한이 없습니다 IIS에서 계정에 내장 .NET에서 실행되어야합니다 ... ..
고맙습니다
에 대한 LocalMachine
를 LocalMachine으로 인증서를 설치하고 사용하여 동일한을 검색해야합니다 당신은 IIS를 실행하고 어디를 무엇 사용자 인증서를 배포했는지 (동일한 사용자입니까?) – Mino
현재 사용자에 대한 모든 브라우저 인증서가 필요합니다 ... x509 인증서 저장소에있는 저장소 ... 개인 탭에 있습니다. 로컬 iis에 응용 프로그램을 배포합니다. 동일한 사용자가 있습니다 ... –
Gusman에 의해 다른 설명 됨 대답, CurrentUser 저장소가없는 계정에서 IIS를 실행하고 있습니다. 그러나 왜 그 가게가 필요한지 자문 해보십시오. 필요한 모든 인증서를 LocalMachine 저장소에 넣을 수 있으며 IIS 서버에서 액세스 할 수 있습니다. –