2012-05-23 67 views
2

我有一個Web應用程序,我使用Windows憑據自動登錄。 我現在想要使用我的Windows帳戶在c#windows應用程序中使用此Web應用程序的信息。所以我需要能夠從這個網站獲得session-cookie。 在這裏你可以看到一些我的代碼,在這裏我要檢索的cookie:在C#客戶端應用程序中使用Kerberos票據

 string URLAuth = extractParameterFromProperties("relatieBeheer_login_url"); 
     WebClient webClient = new WebClient(); 
     webClient.Credentials = CredentialCache.DefaultCredentials; 
     // webClient.UseDefaultCredentials = true; 

     byte[] responseBytes = webClient.DownloadData(URLAuth); 
     //byte[] responseBytes = webClient.UploadValues(URLAuth, "POST", formData); 
     string resultAuthTicket = Encoding.UTF8.GetString(responseBytes); 
     if(resultAuthTicket.Contains("Verkeerde combinatie gebruikersnaam")){ 
      sessionCookie="NoSession"; 
     }else{ 
       WebHeaderCollection cookies = webClient.ResponseHeaders; 
       sessionCookie = cookies[HttpResponseHeader.SetCookie]; 
     } 

當我調試應用程序,我什麼也看不見填充憑據: 域名,用戶名&密碼是空的。

任何幫助將是最受歡迎的。

回答

0

DefaultCredentials返回的ICredentials實例不能用於查看當前安全上下文的用戶名,密碼或域。

http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultcredentials.aspx

+0

OK,但你的意思是的DefaultCredentials的確應該發送的Kerberos票然後? – user1370849

+0

@ user1370849我相信他們應該與身份驗證一起發送,但由於安全原因您無法在變量中看到他們。 –

+0

任何我可以解決這個問題的方法。在wireshark中,我沒有看到任何Kerberos票證通過,而當我只是USDàweb瀏覽器時,我可以看到它通過 – user1370849

相關問題