3

ASP.netプロジェクトに(通常の)WCFサービスを備えたSilverlight5Prismアプリケーションがあります。ローカルホストでホストするためにIIS7.5を使用しています。私はのすべての手順に従いました

方法:Windows認証を使用してSilverlightアプリケーションのサービスを保護する

方法:Silverlightアプリケーション用のASP.NETで安全なサービスをホストする

しかし、Windows認証を機能させることができません。IISで匿名認証をオフにするとThe remote server returned an error: NotFound.、WCFサービスが見つからないため、アプリケーションは例外をスローします。

Visual Studioでサービス参照を更新しようとすると、エラーが発生しますSecurity settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.

匿名認証をオンにすると、サービスは機能しますが、Windowsユーザーの資格情報を取得できません。私のブラウザ(IE 8)は、統合Windows認証を使用し、ローカルイントラネットに自動的にログオンするように設定されています。

私は何が間違っているのですか?

これが私のIIS7.5構成です。アプリケーションプールは統合モードで実行されています。

IIS構成

web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.web>
    <compilation debug="true" />
    <authentication mode="Windows" />
  </system.web>
  <system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="false" />
       </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />  
  </system.serviceModel>
</configuration>

ServiceReferences.ClientConfig:

<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_ISecurityService" maxBufferSize="2147483647"
                    maxReceivedMessageSize="2147483647">
                    <security mode="TransportCredentialOnly" />
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:85/SecurityService/SecurityService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISecurityService"
                contract="SecurityServiceReference.ISecurityService" name="BasicHttpBinding_ISecurityService" />
        </client>
    </system.serviceModel>
</configuration>
4

1 に答える 1

0

私は、これがWindows認証用に適切に設定されていない可能性があることをWCFの部分で推測しているだけです。wcf サービスは、IIS からの要求を Windows 資格情報でも認証するように構成する必要があります。したがって、その場合、サービスにこれを要求する動作が必要になると思います。これらが正しく構成されているかどうかを確認してください。servicecredentials と clientcredentials。

サービス資格情報

WCF でのセキュリティ動作

于 2014-03-04T09:41:30.607 に答える