簡體   English   中英

Windows 8.1 WCF客戶端無法通過BasicHttpBinding通過摘要身份驗證連接到服務

[英]Windows 8.1 WCF client fails to connect to service with digest authentication over BasicHttpBinding

從Windows 8.1連接客戶端時,我的WCF應用程序出現問題。 在過去的幾天里,我一直在發瘋,無法深入探究。 這是場景:

我的WCF服務相當簡單。 它使用basicHttpBinding,TransportCredentialOnly安全模式和摘要客戶端憑據類型。 (web.config文件在這里: http : //pastebin.com/LsWmcfTs )。 這樣做是因為我需要服務器端的Windows身份。

我的客戶端是一個控制台應用程序,嘗試在我的服務中調用“ Ping”方法(僅返回文本“ Pong”)時會發生故障,用於連接該服務的代碼如下:

var basicBinding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly);
basicBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Digest;

var client = new TestExecutionEngineClient(basicBinding, new EndpointAddress(uri));

client.Open();

client.Ping();

在所有連接的客戶端上,這已經工作了一年多,除了Windows 8.1從未使用過。

當它打到client.Ping(); 我得到以下異常:

例外:

HTTP請求未經客戶端身份驗證方案“摘要”授權。 從服務器收到的身份驗證標頭是“摘要qop =“ auth”,算法= MD5-sess,nonce =“ + Upgradeed + v1c1d404aaeb7edbba8daf132fea97aa12243033a0f40acf01376892331a408411c85513f482eab750b18498cb2d420b2fb99998b5b

內部異常:

遠程服務器返回錯誤:(401)未經授權。

基本異常:

安全包中沒有可用的憑據

據我所知,似乎服務器端正在請求摘要(正確),並且客戶端正在摘要中進行身份驗證,但它不會接受.....

任何和所有幫助將不勝感激。 謝謝

問題在於,Microsoft在8.1 / 2012 R2中增強了LSAS中的安全性。 通過網絡發送用戶身份信息不再支持BasicHttpBinding。 您必須改為使用WSHttpBinding。

這解決了我的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM