【问题标题】:IIS module and WCFIIS 模块和 WCF
【发布时间】:2010-08-04 18:32:22
【问题描述】:

我已经编写了一个 IIS 模块(基础 IHttpModule),它在我的 WCF REST 服务之前执行一些自定义 (OpenAuth) 身份验证。 我扩展了 GenericPrincipal 来跟踪我的用户,使用 IIdentity,并设置 我的新委托人的 context.User 字段: application.context.User = principal

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

我在网上看到很多关于使这项工作发挥作用的资料(包括用于 serviceHostingEnvironment 的 aspNetCompatibilityEnabled="true"、使用 OperationContext 等...)但我尝试过的任何方法似乎都不起作用。

两个问题:

  1. 有没有办法让它工作(或者我只是在这里吠错了树)。
  2. 执行此操作的规范方式是什么,或者可能是处理此自定义身份验证的更“WCF”方式。

谢谢

【问题讨论】:

    标签: wcf authentication module httpmodule httpcontext


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 2011-07-01
      • 2017-05-25
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      相关资源
      最近更新 更多