2010-06-17 86 views
2

我正在研究從當前用戶存儲訪問x.509證書的應用程序。當應用程序作爲可執行文件運行時,這可以正常工作。訪問Windows服務中的當前用戶個人證書存儲

但是,當我嘗試將應用程序作爲Windows服務運行時,它無法找到證書。我嘗試更改Windows服務控制檯的LogOn屬性來設置正確的用戶,但這沒有幫助。

有什麼辦法可以訪問特定用戶的(管理員)證書存儲?我必須在用戶存儲中使用證書 - 否則我可以輕鬆使用本地機器商店。

任何幫助將不勝感激。

我使用這個代碼特定部分檢索證書:

     serviceHost.Credentials.ServiceCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "My-CertificateName"); 

爲可執行運行時,此工作正常 - 但未能找到一個證書作爲Windows服務運行時

回答

1

當我過去遇到類似這樣的問題,這與用戶權限有關,但如果您已將服務設置爲以管理員身份運行,並以管理員身份運行應用程序作爲exe文件,那麼我有點懷疑。

這就是說,嘗試這兩個環節開始 - 他們是從一個WCF點寫的,但容易適用於任何類型的服務:

Working with Certificates

How to: Make X.509 Certificates Accessible to WCF

如果沒有在這些幫助中,請編輯您的問題以包含您用於訪問x.509證書的代碼。

+0

我經歷了兩篇文章 - 但無法真正找到我最終發生錯誤的地方 - 設置證書很簡單,並且我編輯了我的問題以表達該意見。 謝謝 – Xeel 2010-06-17 15:24:59

相關問題