1

Windows サービスで tcp バインディングを使用して wcf サービスをホストしています。LAN では正常に動作しますが、ユーザーがインターネットからサービスに接続しようとすると、次のエラーが発生します。

サーバーはクライアント資格情報を拒否しました

これは私のサービス構成です:

 service behaviorConfiguration="WcfServiceLibrary1.Service1Behavior"
        name="LivePushServiceLib.SubscribeService">
        <endpoint address="" binding="netTcpBinding" bindingConfiguration=""
          contract="WCF_Interface.ISubscribeService">

        </endpoint>
        <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
          contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://188.x.x.x:8524/SubscribeService.svc" />
          </baseAddresses>
        </host>
      </service>
    </services>
4

1 に答える 1

0

WindowsであるNetTcpBindingでデフォルトのセキュリティを使用しています。あなたの LAN では、誰もが Windows 資格情報を非常に満足して使用していると思います。ただし、インターネットからのユーザーがドメインの資格情報を持っている可能性は低いです

これをインターネット全体で使用したい場合は、セキュリティを TransportWithMessageCredential のようなものに設定してから、資格情報タイプのユーザー名を使用してください。これにより、インターネット ベースのクライアントは、カスタム UsernamePasswordValidator で検証できるユーザー名で認証できます。

于 2012-05-14T09:04:24.670 に答える