2010-07-28 149 views
0

有人能指點我一個[相對]簡單的介紹,瞭解如何正確配置ASP.Net託管的WCF 4.0服務,以便爲服務的某些方法模擬調用方的憑據,但允許匿名訪問其他方法?WCF客戶端冒充

我在MSDN上閱讀了很多關於這方面的內容,但是我讀得越多,我就越困惑。也許我只是一個笨蛋,但這似乎比它應該更難:-(

我已經看過SE上的帖子,但沒有一篇似乎指向端到端的示例或教程有是CodePlex上一個WCF指導文件,但它似乎無可救藥地過時了,並且自2008年以來

這裏任何幫助,將不勝感激一直沒有更新。

回答

1

這可以通過OperationBehaviorAttribute.Impersonation完成property

[ServiceContract] 
interface ISelectiveImpersonationExample 
{ 
    [OperationContract] 
    void ThisUsesImpersonation(); 

    [OperationContract] 
    void ThisDoesNotUseImpersonation(); 
} 


// Implementation 
class SelectiveImpersonationExampleImpl : ISelectiveImpersonationExample 
{ 
    [OperationBehavior(Impersonation=ImpersonationOption.Required)] 
    public void ThisUsesImpersonation() 
    { 
     // ... 
    } 

    [OperationBehavior(Impersonation=ImpersonationOption.NotAllowed)] 
    public void ThisDoesNotUseImpersonation() 
    { 
     // ... 
    } 
} 

確保你請勿將服務的行爲的ImpersonateCallForAllOperations值設置爲true。如果這樣做, ThisDoesNotUseImpersonation函數將拋出一個InvalidOperationException

我在這裏講理論,在現實生活中並沒有真正做到。如果它不起作用,請讓我知道。

+0

謝謝,我會試試看。但是,我發現最令人困惑的是試圖設置正確的配置設置來使其工作。我會告訴你。 – camainc 2010-07-29 14:50:41