6

NTLM 認証用に basicHttpBinding を構成する方法は知っていますが、netTcpBinding 用に同じことを行う方法がわかりません。

netTcpBinding は NTLM をサポートしていますか? もしそうなら、WCF サービスに NTLM の使用を強制する方法は?

ところで、なんらかの理由でアイデンティティ要素を使用するよく知られた方法がまったく機能しませんでした。私はこのようなものを探しています-clientCredentialType ="Ntlm"ですが、tcp用です。これがbasicHttp設定です:

<basicHttpBinding>
  <binding name="BasicHttpBinding">
  <security mode ="TransportCredentialOnly">
  <transport clientCredentialType ="Ntlm"/>
  </security>
  </binding>
</basicHttpBinding>
4

2 に答える 2

5

これが、私が最終的に見つけ、テストし、確認した包括的な答えです。

A.私のWCFクライアントは、次のようにEndPoint.Addressを動的に構築していました

EndPointAddress  myEdpintAddress = new EndPointAddress(stringURL);

ただし、安全なトランスポート (net.tcp) の場合は、次のように初期化する必要があります EndPointAddress myEdpintAddress = new EndPointAddress(new UrRL(string), myEndPointIdentity)

EndPointIdentity パラメーターがないと、EndPointAddress オブジェクトの Identity プロパティが null になり、サーバー側で「...ターゲット プリンシパル名が正しくありません...」というエラーが生成されます。

B. 当社のドメイン コントローラーは、Kerberos と Ntlm の両方の認証をサポートしています。上記が完了した後、セキュリティが「なし」以外で、WCF サービスがドメイン アカウントとして実行されている場合、通常、net.tcp バインドのクライアント側には 4 つの構成シナリオがあります。

  1. <identity>クライアント エンドポイントに要素が指定されていません- WCF 呼び出しが失敗します

  2. <identity>要素が提供されましたが、dns、userPrioncipalName、または servicePrincipalName 要素の値が空の場合 - WCF 呼び出しは成功しましたが、Ntlm 認証を使用しています

  3. <identity>dsn または SPN の値が指定された要素 – WCF 呼び出しが成功しました。サービスは Ntlm を使用して認証します。

  4. <identity>upn の正しい値が指定された要素 – WCF 呼び出し成功。サービスは認証に Kerberos を使用します。upn トリガー Ntlm 認証の値が正しくないか、欠落しています

ありがとう。

于 2010-02-14T15:45:02.280 に答える
0

Net TCP Binding は、クライアント資格情報の種類として "NTLM" をサポートしてNoneWindowsませCertificate

したがって、あなたの場合、これを試してください:

<netTcpBinding>
  <binding name="tcpWindows">
    <security mode ="TransportCredentialOnly">
      <transport clientCredentialType ="Windows"/>
    </security>
  </binding>
</netTcpBinding>

これが機能しない理由は何ですか??

于 2010-02-05T06:15:58.313 に答える