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
、認証されたユーザーは見当たりません。
私は何が間違っているのですか?
フレデリク