Windows認証を使用してIISでWCF Webサービスをホストしようとしています。制限により、basicHttpBinding &偽装を使用する必要があります(チェーンを介してリソースにアクセスするために発信者の身元を偽装する)。basicHttpBinding、Windpws-Authenticationおよび偽装を使用したWCF Webサービスのアクティベーションエラー
私は宣言私のWCFサービスの動作契約に偽装を有効にしている:
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
私のweb.configファイルは次のとおりです。ただし
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="basic">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows">
</transport>
</security>
</binding>
</basicHttpBinding>
</bindings>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<services>
<service name="NotesService">
<endpoint address="http://Client1.osp.local:15000/NotesService/NotesService.svc" bindingConfiguration="basic" binding="basicHttpBinding" contract="NotesService.ServiceContract.INotesService">
<identity>
<servicePrincipalName value="HTTP/Client1.osp.local:15000"/>
</identity>
</endpoint>
</service>
</services>
</system.serviceModel>
、私はアクティベーションエラーを取得しています。私は何が欠けていますか?
私は取得していますエラーは次のとおりです。
The contract operation 'Process' requires Windows identity for automatic
impersonation. A Windows identity that represents the caller is not provided by
binding ('BasicHttpBinding','http://tempuri.org/') for contract
('NotesService','http://tempuri.org/'.
サービスに関するIDタグは無関係です。クライアントが期待するサービスとの会話をクライアントが検証できるようにするためにクライアント上で使用されます(つまり、サービスはクライアントが期待している正しいアイデンティティを持っています) –