【发布时间】:2014-06-06 18:09:33
【问题描述】:
我正在尝试使用 WCF 在 IIS 上进行基本身份验证。
我开发了一个 RESTFul 网络服务并启用了 SSL。我通过user name和password通过
HttpContext.Current.Request.Headers["Authorization"],
我使用这些信息将HttpContext.Current.User 设置为新的genericPrincipal()。
最终属性HttpContext.Current.User.Identity.IsAuthenticated 保持“真实”
但是我收到的回复是"401 Unauthorized"。所以我的问题是,我怎样才能满足 IIS 基本身份验证?
Web.Config
<?xml version="1.0" encoding="UTF-8"?>
<system.serviceModel>
<services>
<service name="Agfa.ChannelServiceRest.PrivateServices" behaviorConfiguration="PrivateBehaviors">
<endpoint contract="Agfa.ChannelServiceRest.IPrivateServices"
binding="webHttpBinding"
bindingConfiguration="Secure"
behaviorConfiguration="Web"
name="PrivateBehaviors" />
</service>
</services>
<bindings>
<webHttpBinding>
<binding name="Secure">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="Web">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="PrivateBehaviors">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>`
【问题讨论】:
标签: c# wcf authentication iis