2013-07-29 63 views
1

每次客戶端調用我的WCF服務時,我都希望將該請求記錄到數據庫中,該數據庫將包含諸如該客戶端的用戶名等詳細信息。在WCF PerCall服務上保留客戶端的用戶名

我正在使用自定義身份驗證與我的WCF服務。

是否有可能在每次調用WCF服務時以某種方式獲取調用方的用戶名,還是每次都有傳遞用戶名的方法?

回答

1

要檢索調用者的用戶名,您可以從System.IdentityModel.Selectors.UserNamePasswordValidator繼承,並根據您的需要重寫Validate Method。 至於每呼叫實例化模式,WCF會爲每個呼叫創建一個新的服務實例,因此每個呼叫都應該使用正確的憑證進行認證。我認爲您可以在打開代理時指定一次憑據,並且每次向代理請求對該服務的操作(直到代理關閉並且您一起創建新代理)時,代理纔會顯示憑證。 此鏈接可能有用 - http://www.codeproject.com/Articles/96028/WCF-Service-with-custom-username-password-authenti