2014-01-14 133 views
2

在我的申請,我在客戶端創建自己的委託對象,這是我設置像從客戶端以校長在WCF的服務服務器

Thread.CurrentPrincipal = myPrincipal; 

現在,當我調用WCF服務( TCP/IP),我也應該在這個稱爲WCF服務的服務器端線程中擁有此主體。有什麼我可以配置來做到這一點,還是我必須自己實現?

感謝您的提示。

+0

請參閱此文章:http://stackoverflow.com/questions/1292183/what-value-should-the-serviceprincipalname-have –

回答

1

如果我們談論的窗口負責人,看看WCF認證安全選項。這不是微不足道的。

如果您有一個自定義主體對象,那麼我的建議是實現消息檢查器,將消息頭中的主體序列化並在另一端解壓縮它。這對於我們在很多項目中工作得非常好,並且不需要任何特殊的WCF設置。

+0

嗨fejesjoco - 我使用自定義校長。消息檢查員的想法聽起來很有趣。你能給我一個示例如何使用消息insepctors? – BennoDual

+0

這看起來是一個很好的例子:http://adilmughal.com/blog/2011/10/client-additional-parameters-using-custom-headers-in-wcf/ – fejesjoco

+0

這種方法的好處是你可以發送任何類型的複雜數據合同對象,您只需將其應用於每個服務調用,就不需要爲每個服務方法逐個添加新參數。 – fejesjoco

0

這將是隱式進行,如WCF每個請求都應有Iprincipal.Identity 你嘗試過這樣的事情在你的服務器端

IPrincipal principal = Thread.CurrentPrincipal; 
相關問題