我有一個需要編寫一個WCF服務,該服務將使用VBA代碼中的Service Moniker從MS Excel中調用。到目前爲止,我已經發現了這一點。從一個WCF服務如何調用第三方DLL中的方法作爲當前用戶不是IIS DefaultApppool
我也有模擬工作,所以,如果我是從一個Web方法返回當前用戶將返回我的用戶名,而不是IIS \默認應用或任何正在運行IIS作爲...
因此,這裏是我的問題。我有第三方DLL「CyberArk密碼管理,如果任何人有興趣」,我創建一個PWD對象,設置一些參數,然後調用一個名爲Getpassword的方法。現在我可以調用這個方法,但是我總是得到一個認證失敗。如果我鑽進去,我已經運行似乎,即使我使用模擬該DLL方法仍然被稱爲IIS \默認應用
這裏有一些片段的CyberArk代理的日誌...
模擬是在方法級別
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
開啓對此方法的調用返回我的域名和用戶名,因爲我所期望的
WindowsIdentity.GetCurrent().Name
但是,這條線被稱爲IIS \默認應用
password = PasswordSDK.GetPassword(passRequest);
我曾嘗試在代碼中做模擬,而不是使用Annotaion,我自己也嘗試了使用bolck一個模擬對象,似乎沒有任何所以這裏的工作是什麼我在想。
該DLL不知何故不允許我冒充出於安全原因,呼叫者
它可能不會再允許這個.NET架構出於安全原因
我沒有任何線索,會喜歡一些幫助:-)
您還可以設置IIS以在特定帳戶下運行應用程序。 – Tim
我可能需要更多解釋... 此服務必須駐留在安裝了特定軟件的服務器上。爲了測試,我在本地安裝了「代理」。沒有代理,它不會工作。 如果我要做自我託管服務,我認爲可執行文件將駐留在最終用戶機器上正確?然後服務可以駐留在安裝了代理的計算機上。 我會嘗試你的建議,看看我想出了什麼,只是認爲這可能會增加我的問題的一些清晰度。 謝謝 – user1735894