2011-04-13 108 views
1

我們有一個連接到oracle數據庫的WCF服務。與數據庫的連接必須使用調用該服務的用戶的憑據完成。如何將數據庫憑據傳遞給wcf服務?

如何設置它以便我可以訪問在客戶端的客戶端憑據中設置的用戶名和密碼,以便我可以將這些添加到我想要連接到數據庫時獲得的連接字符串中以獲取服務電話的數據?

或者是否有其他方式應該處理?

如果它有所作爲,我們將在oracle數據庫中使用代理身份,因此所有用戶都將作爲主用戶進行連接,並將代理身份設置爲傳遞的憑據以確保查詢在代理用戶的上下文。

回答

1

設置您的服務使用Impersonation。這樣他們將採取服務客戶端的身份。

一旦這個設置,你可以得到呼叫方的Windows標識是這樣的:

WindowsIdentity callerWindowsIdentity = ServiceSecurityContext.Current.WindowsIdentity; 

Check out this blog post,看看它是否幫助你的。

+0

謝謝,但我們沒有使用Windows身份驗證,我們正在使用用戶名/密碼驗證 – 2011-04-13 13:38:31

+0

您如何驗證呼叫者?你在使用customUserNamePasswordValidatorType嗎? – BrandonZeider 2011-04-13 13:43:46

+0

目前我們沒有進行身份驗證。我應該說我們想使用用戶名密碼認證...我們正在努力調查我們的選擇是什麼... – 2011-04-13 13:47:28

相關問題