2014-01-06 34 views
0

身份驗證服務。在過去的幾天裏,我一直在爲此瘋狂,並且無法深入到底。下面是這種情況:的Windows 8.1 WCF客戶端無法連接與消化了從Windows 8.1連接客戶端時,我有我的WCF應用程序的問題basicHttpBinding的

我的WCF服務是相當直截了當。它使用basicHttpBinding和TransportCredentialOnly安全模式,以及摘要客戶機憑證類型。 (web.config文件在這裏:http://pastebin.com/LsWmcfTs)。它這樣做,因爲我需要在服務器端的Windows身份。

我的客戶是一個控制檯應用程序,當它試圖調用在我服務的「平」的方法(這只是返回文本「傍」)用於連接到服務的代碼故障情況如下:

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();我得到下面的異常:

例外:

The HTTP request is unauthorized with client authentication scheme 'Digest'. The authentication header received from the server was 'Digest qop="auth",algorithm=MD5-sess,nonce="+Upgraded+v1c1d404aaeb7edbba8daf132fea97aa12243033a0f40acf01376892331a408411c85513f482eab750b18498cb2d420b2fb99998b5b8b071a2",charset=utf-8,realm="Digest"'.

內部異常:

The remote server returned an error: (401) Unauthorized.

基本異常:

No credentials are available in the security package

從我可以告訴,它看起來像服務器端正在請求摘要(正確)並且客戶端正在摘要中進行身份驗證,但它不會接受它.....

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

+0

根據MSDN有在Windows 8.1的變化(http://technet.microsoft.com/en-us/library/dn344918.aspx)。有問題的用戶是變更說明中列出的受保護用戶組的成員嗎? – Kevin

+0

,看起來很有希望,但是我們的DC是2008 R2,並且在我們的廣告沒有任何安全組名爲保護用戶...所以很自然的,我的用戶帳戶不是在它 –

+0

你可以創建一個小的應用程序,以自託管服務而不是IIS,看看它是否工作? – Kevin

回答

1

的問題是,微軟已經增強了的LSA安全8.1/2012 R2。 BasicHttpBinding不再支持通過網絡發送用戶身份信息。您必須改用WSHttpBinding。

這解決了我的問題