【问题标题】:REST WCF 4 Service with Custom Basic Authentication over SSL in IIS在 IIS 中通过 SSL 进行自定义基本身份验证的 REST WCF 4 服务
【发布时间】:2011-08-09 21:38:18
【问题描述】:

我正在寻找有关使用 .NET 4.0 使用 IIS 中托管的基于 HTTPS 的自定义基本身份验证来实现 RESTful 服务的完整分步指南或示例项目。

我已经在谷歌上搜索了 3 天,但我只能找到一个非常不同的 WCF 3.5 实现,或者没有自定义基本身份验证,或者没有 SSL。

基本上我在 WCF 4 上实现了我的 REST 服务,并添加了 SSL,但我无法使用自定义用户数据库使用自定义身份验证。

任何参考将不胜感激。

【问题讨论】:

  • 您发现的 3.5 实现有什么不同?为什么它在 4.0 中不起作用?
  • 这里有一个例子(说明很详细,包括出处):codeproject.com/Articles/379636/…

标签: wcf iis rest ssl


【解决方案1】:

目前无法使用可用的 WCF 扩展点。

【讨论】:

    【解决方案2】:

    自定义HTTP module 允许对自定义凭据存储进行基本身份验证。 IIS 中的内置模块仅支持 windows 帐户。

    【讨论】:

      【解决方案3】:

      我为此苦苦挣扎了一段时间,最后只是在我的服务中实现了基本身份验证。检查 WebOperationContext.Current.IncomingRequest.Headers 以获取“授权”标头。如果丢失或凭据不匹配,请设置质询标头并返回 401 状态:

      WebOperationContext.Current.OutgoingResponse.Headers.Add("WWW-Authenticate: Basic realm=\"myrealm\""); 
      throw new WebFaultException<string>("Username and password needed", HttpStatus.Unauthorized);
      

      这足以触发浏览器提示用户输入凭据。有关基本身份验证的更多信息,请参阅https://www.rfc-editor.org/rfc/rfc2617,有关此令人沮丧的缺失功能的更多信息,请参阅http://ithoughthecamewithyou.com/post/Basic-HTTP-auth-for-an-IIS-hosted-WCF-4-RESTful-service.aspx

      【讨论】:

      • 顺便说一句...我认为你的最后一个参数应该是HttpStatusCode.Unauthorized
      猜你喜欢
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 2012-02-10
      • 1970-01-01
      • 2011-07-05
      • 2011-03-28
      • 1970-01-01
      相关资源
      最近更新 更多