![](/img/trans.png)
[英]Why is my WCF wshttpbinding client doesn't work at another computer?
[英]Why is the WCF wsHttpBinding Timestamp optional?
我們有一個使用wsHttpBinding的WCF服務。 我生成的示例請求包括一個時間戳,該時間戳已由WCF針對每個請求進行了驗證:
<u:Timestamp u:Id="_0">
<u:Created>2013-11-02T16:58:24.575Z</u:Created>
<u:Expires>2013-11-02T17:03:24.575Z</u:Expires>
</u:Timestamp>
最近,我們對該服務進行了筆測試,測試人員注意到可以省略timestamp元素,並且無需它就可以接受請求。
我正在查看報告,並為此添加解釋。 不幸的是,我進行了很好的搜索,但是找不到任何可以解釋甚至提及它的資源。
所以我的問題是:
這是服務綁定配置:
<wsHttpBinding>
<binding name="usernameHttps" maxReceivedMessageSize="2147483647">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName" establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
這是客戶端綁定配置:
<wsHttpBinding>
<binding name="WSHttpBinding_IService" maxReceivedMessageSize="2147483647">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
- 為什么這是可選的?
時間戳是可選的,因為必須對它采取行動,它來自MSDN http://msdn.microsoft.com/zh-cn/library/ms977327.aspx
“通過了解創建和到期時間,接收者可以決定數據是否足夠新以供自己使用,或者數據是否過時以至於消息應被丟棄。”
- 如果我被問到,是否可以強制設置時間戳記?
是的,如上所述,這是您的服務邏輯所需要的,最簡單的方法是在WCF處理管道中添加一個攔截器,該攔截器將檢查此標頭,如果找不到,則會引發錯誤http://msdn.microsoft.com /zh-CN/magazine/cc163302.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.