[英]WCF using Transport always attempts to use HTTPS when I don't want it to
我不斷收到以下錯誤“找不到與綁定WebHttpBinding的端點的方案https匹配的基地址。注冊的基地址方案為[http]。” 這是因為我通過添加以下內容進入“基本傳輸身份驗證”:
<webHttpBinding>
<binding name="secureBasic">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</webHttpBinding>
谷歌搜索之后,常見的修復方法似乎是以下代碼,但是我沒有成功:
<baseAddressPrefixFilters>
<add prefix="http://mywebsiteurl"/>
</baseAddressPrefixFilters>
仍然沒有任何效果。 我只想在非https連接上使用基本的http身份驗證。 我沒有進行任何配置,默認情況下WCF似乎想強制使用HTTPS連接。 有人碰到這個嗎?
如果告訴WCF使用傳輸安全模式,則必須使用支持安全通信的傳輸協議。 HTTP不支持安全通信,因為它是純文本協議(任何攔截您的通信的人都可以簡單地讀取正在傳輸的內容)。 HTTPS確實支持安全通信,因此具有傳輸安全性的webHttpBinding
唯一選擇是使用HTTPS(可以在IIS中配置)。
這是一篇博客文章,描述您的錯誤以及如何使用TransportCredentialOnly
解決錯誤。 它與basicHttpBinding
有關,但對webHttpBinding
同樣適用。
如果只需要傳輸級身份驗證(=基本身份驗證),但又不想傳輸級安全通信(= HTTPS),則必須將安全模式設置為TransportCredentialOnly。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.