2

netTcpBinding として公開されている WCF サービスがあります。

サービス側:

<netTcpBinding>             
    <binding> 
      <security mode="Message">
        <message clientCredentialType="Windows"/>
      </security>         
    </binding>
</netTcpBinding> ...
// Service behavior
<behavior>         
    <serviceCredentials>
       <windowsAuthentication allowAnonymousLogons="true" />
     </serviceCredentials>          
</behavior>

別のマシンの匿名ユーザーからこのサービスにアクセスできません。(エラー: ネゴシエーションに失敗したリデンシャルを検証できませんでした。)

何が

<windowsAuthentication allowAnonymousLogons="true" /> 

行う?

net tcp バインディングを介して、Windows ユーザーと匿名ユーザーの両方がサービスにアクセスできるようにしたいと考えています。UserName 検証を使用してこれを行うことができますが、Windows 認証を使用してこれを行うにはどうすればよいですか?

ありがとう

4

2 に答える 2

3

クライアントで AllowedImpersonationLevel を設定しましたか?

<behaviors>
    <endpointBehaviors>
      <behavior>
        <clientCredentials>
          <windows allowedImpersonationLevel="Anonymous"/>
        </clientCredentials>
      </behavior>
    </endpointBehaviors>
</behaviors>

また

client.ClientCredentials.Windows.AllowedImpersonationLevel = 
System.Security.Principal.TokenImpersonationLevel.Anonymous;
于 2013-05-30T15:25:18.060 に答える