我在 Umbraco 中创建了一个自定义 WCF 服务。该服务驻留在Service
文件夹中,似乎工作正常(我可以调用它,它会适当地响应)。现在我希望用户在调用服务时进行身份验证。
为此,我已将这些行添加到web.config
:
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
<bindings>
<webHttpBinding>
<binding name="RaceManBinding">
<security mode="None" />
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="RaceManagerAdmin.RaceManDataService" behaviorConfiguration="RaceManBehavior">
<endpoint address=""
binding="webHttpBinding"
contract="System.Data.Services.IRequestHandler" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="RaceManBehavior">
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
membershipProviderName="UmbracoMembershipProvider" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
当我的服务被调用时,它应该使用 Umbraco 会员提供者来验证用户。
我的客户通过创建一个网络凭证对象来指定这一点,如下所示:
var a = new RaceEntities(new Uri("http://localhost:40406/umbraco/Webservices/RaceManDataService.svc")) { Credentials = new NetworkCredential("admin", "secret") };
当我检查时,HTTPContext.Current
我没有看到任何经过身份验证的用户。
我究竟做错了什么?
弗雷德里克