繁体   English   中英

此方案的正确WCF net.tcp绑定安全性是什么?

[英]What is the correct WCF net.tcp binding security for this scenario?

我有一个WCF服务,它托管在Windows服务中并具有net.tcp端点。 客户端与服务位于同一LAN(工作组)中,但它们没有服务器的Windows用户帐户。

PS:当我在客户端和服务器中将Security.Mode设置为None时,我收到以下错误:

“{SERVICE ADDRESS}”不支持请求的升级。这可能是由于绑定不匹配(例如,在客户端而非服务器上启用了安全性)。

默认情况下,Nettcp绑定是安全的,您的客户端必须提供Windows凭据,因为所有消息都是通过tcp签名和加密的。 将其设置为none可能会导致问题,您需要以下内容:

<netTcpBinding>
     <binding name="netTcp">
       <security mode="Transport">
         <transport clientCredentialType="Windows" />
       </security>
     </binding>
</netTcpBinding>

好的,我解决了这个问题。

我不知道为什么会这样,但如果我取消选中服务器的文件夹选项中的“使用简单文件共享”,一切都很完美。

我有自己托管的net.tcp服务,它们可以在有或没有安全性的情况下正常工作,事实上,你可以在同一个端口上托管多个安全和不安全的net.tcp合同,这使得防火墙设置更简单。

如果关闭简单文件共享是允许客户端/服务工作的原因,那么我怀疑您选择托管服务的端口也被简单文件共享使用。

如果上述任何解决方案对您不起作用,请尝试从端点中删除标识,如下所示:

<endpoint address="net.tcp://127.0.0.1/FacilitySchedulesService/FacilitySchedulesService.svc"
                binding="netTcpBinding" bindingConfiguration="FacilityScheduleDSTCP"
                contract="FacilitySchedules.IFacilitySchedulesService" name="FacilityScheduleDSTCP">
        <!--<identity>
          <userPrincipalName value="abc" />
        </identity>-->
      </endpoint>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM