為什麼使用者必須登入才能進行模擬?

為什麼使用者必須登入才能進行模擬?

我的 Windows Server 2008 伺服器託管一個使用模擬的 ASP.net 應用程式。只要被模擬的使用者保持登入伺服器,該應用程式就可以運行。但是,當使用者登出時,客戶端將無法再查看網頁。相反,他們得到了一個神秘的錯誤。

如何設定伺服器在模擬使用者不保持登入狀態的情況下運作?提前致謝。

答案1

我找到了問題和解決方案。

問題:

Web 服務使用 X509Certificate2 憑證。 X509Certificate2 類別建構子嘗試將憑證匯入應用程式執行所在的使用者帳戶的使用者設定檔 很多時候,ASP.NET 和 COM+ 應用程式會模擬客戶端。當他們這樣做時,出於效能原因,他們不會載入模擬使用者的使用者設定檔。因此,他們無法存取模擬用戶的“用戶”證書存儲。

當從互動式應用程式或在使用者帳戶下執行的 Windows 服務運行時,相同的程式碼將起作用,因為設定檔是在使用者登入或服務啟動時載入的。

解決方案:

  1. 執行 ASP.NET/COM+ 應用程式的電腦上的管理員應將憑證安裝在電腦憑證儲存(稱為「本機電腦」儲存體)中。這應該在安裝 ASP.NET/COM+ 應用程式時完成。

  2. 管理員應設定與憑證關聯的私鑰的權限,以便 ASP.NET 進程和模擬使用者可以存取該金鑰。這是必需的,因為只有在「本機電腦」儲存中安裝憑證或私鑰的使用者帳戶稍後才能使用與該憑證關聯的 RSA 私鑰。使用 Windows 資源工具包工具中提供的 WinHttpCertCfg.exe (http://msdn2.microsoft.com/en-us/library/aa384088.aspxhttp://msdn2.microsoft.com/en-us/library/aa384088.aspx) ) 配置權限。

  3. ASP.NET/COM+ 應用程式程式碼應使用已安裝的證書,而不是嘗試從 PFX 檔案安裝證書。讓程式碼使用 X509Store 類別找到已安裝的憑證。

http://support.microsoft.com/kb/948154了解更多。

相關內容