有人可以向我指出一个[相对] 简单的演练,了解如何正确配置 ASP.Net 托管的 WCF 4.0 服务,以模拟服务的某些方法的调用者凭据,但允许匿名访问其他方法?
我已经在 MSDN 上阅读了很多关于此的内容,但我阅读的越多,我就越感到困惑。也许我只是个笨蛋,但这似乎比应该做的要难:-(
我浏览了 SE 上的帖子,但似乎没有一个指向端到端示例或教程。CodePlex 上有一个 WCF 指导文档,但它似乎已经过时了,而且自 2008 年以来一直没有更新。
非常感谢这里的任何帮助。
有人可以向我指出一个[相对] 简单的演练,了解如何正确配置 ASP.Net 托管的 WCF 4.0 服务,以模拟服务的某些方法的调用者凭据,但允许匿名访问其他方法?
我已经在 MSDN 上阅读了很多关于此的内容,但我阅读的越多,我就越感到困惑。也许我只是个笨蛋,但这似乎比应该做的要难:-(
我浏览了 SE 上的帖子,但似乎没有一个指向端到端示例或教程。CodePlex 上有一个 WCF 指导文档,但它似乎已经过时了,而且自 2008 年以来一直没有更新。
非常感谢这里的任何帮助。
这可以通过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值设置为 true。如果这样做,ThisDoesNotUseImpersonation函数将抛出InvalidOperationException。
我在这里进行理论,并没有在现实生活中真正做到这一点。如果它不起作用,请告诉我。