IIS中使用SSL进行自定义基本身份验证的REST WCF 4服务

时间:2011-08-09 21:38:19

标签: wcf iis rest ssl

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

我一直在谷歌搜索它3天,我只能找到WCF 3.5的实现,这是非常不同的,或没有自定义基本身份验证,或没有SSL。

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

任何引用都会非常感激。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我在这里挣扎了一段时间,结果只是在我的服务中实现了基本身份验证。检查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);

这足以触发浏览器提示用户输入凭据。有关基本身份验证的更多信息,请参阅http://tools.ietf.org/html/rfc2617http://ithoughthecamewithyou.com/post/Basic-HTTP-auth-for-an-IIS-hosted-WCF-4-RESTful-service.aspx了解有关这种令人沮丧的失踪能力的更多信息。