3

我有一个旧版 Web 服务 (asmx),实际上根本没有定义绑定。它不使用任何安全性,也不需要。在设置唯一的 Web 服务的 WebServiceBinding 时,我只需:

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

...我确信在引擎盖下使用了 basicHttpBinding。我遇到的问题(以及我从研究中发现的许多其他问题)是,当有人使用与服务器时间相差超过 5 分钟的机器时,我们会得到令人讨厌的时钟偏差错误。我搜索了高低并看到了许多解决方案,但没有一个只是简单地调整时钟偏差。所有的解决方案似乎都希望您创建一个自定义绑定,这很好,直到我到达安全元素。我没有使用任何但仍需要设置时钟偏差。我找到了在运行时但仅在客户端上执行此操作的代码。理想情况下,如果我能做这样的事情,我会很高兴(但我似乎做不到——因为我缺少 authenticationMode):

<bindings>
  <customBinding>
    <binding Name="ClockSkewBinding">
      <security>
        <localClientSettings maxClockSkew="00:30:00" />
        <localServiceSettings maxClockSkew="00:30:00" />
      </security>
    </binding>
  </customBinding>
</bindings>

...然后,当然将我的服务器绑定更改为:

[WebServiceBinding(Name="ClockSkewBinding")]

...并为客户端上的端点使用相同的绑定。

我已经阅读了http://msdn.microsoft.com/en-us/library/aa738468.aspx上的 MSDN 文章,并且花了几个小时在网站上寻找类似的东西,但无济于事。我对对此应用任何类型的安全性不感兴趣,我完全理解它的含义。我只需要更改没有安全性的简单 basicHttpBinding 上的时钟偏差。

提前致谢!

4

0 回答 0