代码之家  ›  专栏  ›  技术社区  ›  camainc

WCF客户端模拟

  •  0
  • camainc  · 技术社区  · 15 年前

    有人能给我指一个[相对]简单的演练,说明如何正确配置一个ASP.NET托管的WCF 4.0服务,以模拟调用方对该服务的某些方法的凭据,但允许匿名访问其他方法吗?

    我在msdn上读了很多关于这个的文章,但是读得越多,我就越困惑。也许我只是个笨蛋,但这似乎比实际情况要困难得多:-(

    我已经浏览了SE上的文章,但似乎没有一篇文章指向端到端的示例或教程。有一个关于codeplex的WCF指导文件,但它似乎毫无希望地过时了,而且自2008年以来一直没有更新。

    如有任何帮助,我们将不胜感激。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Andrew Shepherd    15 年前

    这可以通过 OperationBehaviorAttribute.Impersonation 财产

    [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 值变为真。如果你这样做了 这是不必要的 函数将引发 InvalidOperationException .

    我在这里进行理论研究,但实际上在现实生活中还没有做过。如果它不起作用,请告诉我。

    推荐文章