가장이 작동하려면 사용자가 로그인해야 하는 이유는 무엇입니까?

가장이 작동하려면 사용자가 로그인해야 하는 이유는 무엇입니까?

내 Windows Server 2008 서버는 가장을 사용하는 ASP.net 응용 프로그램을 호스팅합니다. 가장되는 사용자가 서버에 로그온되어 있는 동안에는 응용 프로그램이 작동합니다. 그러나 사용자가 로그오프하면 클라이언트는 더 이상 웹 페이지를 볼 수 없습니다. 대신에 알 수 없는 오류가 발생합니다.

가장된 사용자가 로그온 상태를 유지하지 않고도 작동하도록 서버를 구성하려면 어떻게 해야 합니까? 미리 감사드립니다.

답변1

문제와 해결책을 찾았습니다.

문제:

웹 서비스는 X509Certificate2 인증서를 사용합니다. X509Certificate2 클래스 생성자는 응용 프로그램이 실행되는 사용자 계정의 사용자 프로필로 인증서를 가져오려고 시도합니다. ASP.NET 및 COM+ 응용 프로그램은 클라이언트를 가장하는 경우가 많습니다. 그렇게 하면 성능상의 이유로 가장된 사용자의 사용자 프로필을 로드하지 않습니다. 따라서 가장된 사용자에 대한 "사용자" 인증서 저장소에 액세스할 수 없습니다.

사용자가 로그온하거나 서비스가 시작될 때 프로필이 로드되기 때문에 대화형 응용 프로그램이나 사용자 계정으로 실행되는 Windows 서비스에서 실행할 때 동일한 코드가 작동합니다.

해결책:

  1. ASP.NET/COM+ 응용 프로그램이 실행되는 컴퓨터의 관리자는 "로컬 컴퓨터" 저장소라고 하는 컴퓨터 인증서 저장소에 인증서를 설치해야 합니다. 이 작업은 ASP.NET/COM+ 응용 프로그램이 설치될 때 수행되어야 합니다.

  2. 관리자는 인증서와 연결된 개인 키에 대한 권한을 설정하여 ASP.NET 프로세스와 가장된 사용자에게 키에 대한 액세스 권한을 부여해야 합니다. 이는 "로컬 컴퓨터" 저장소에 인증서나 개인 키를 설치하는 사용자 계정만 나중에 인증서와 연결된 RSA 개인 키를 사용할 수 있기 때문에 필요합니다. Windows Resource Kit 도구(http://msdn2.microsoft.com/en-us/library/aa384088.aspx(http://msdn2.microsoft.com/en-us/library/aa384088.aspx) ) 권한을 구성합니다.

  3. ASP.NET/COM+ 애플리케이션 코드는 PFX 파일에서 인증서를 설치하려고 시도하는 대신 설치된 인증서를 사용해야 합니다. 코드에서 X509Store 클래스를 사용하여 설치된 인증서를 찾도록 합니다.

보다http://support.microsoft.com/kb/948154자세한 내용은.

관련 정보