2010-08-04 49 views
2

我写了一个IIS模块(基本IHttpModule),它在执行我的WCF REST服务之前执行了一些自定义(OpenAuth)身份验证。 我已延长的GenericPrincipal跟踪我的用户,用的IIdentity,并设置 的context.User场到我的新校长: application.context.User = principalIIS模块和WCF

然而,当我收到WCF上下文(下一个下台的管道)用户显示为“默认”未经身份验证的WindowsPrincipal(不是我设置的GenericPrincipal)。

我在网上看到很多关于做这项工作的东西(包括serviceHostingEnvironment的aspNetCompatibilityEnabled =“true”,使用OperationContext等等......)但我没有试过的东西似乎工作。

两个问题:

  1. 有没有办法得到这个工作(或我只是在这里找错了树)。
  2. 什么是规范的方式来做到这一点,或者更多的“WCF”方式来处理这种自定义身份验证。

感谢

回答

1

你必须期间WCF授权阶段设置您的主要身份。这需要一个自定义的授权策略。我建议你阅读this article了解更多信息。我还没有试图用自定义的HttpModule和REST来做到这一点,但我已经成功地完成了默认的认证方案。