2012-09-10 55 views
0

我有一個Windows 8應用程序生成一個字符串併發布到https:使用WebAuthBroker。相關代碼如下。WebAuthBroker無法連接到服務,但在IE中手動發佈是成功的

問題是WebAuthBroker接受這個URI並且無法連接,但是當我手工發佈這個URI到IE時,它工作正常。

在Windows 8 在Package.appmanifest運行VS2012,已經使企業認證,網絡端(Client),網絡(客戶端&服務器),專用網絡(客戶端& Server)和共享用戶證書。

  async Task AuthenticateAsync() 
    { 
     var requestUriStr = string.Format("{0}?client_id={1}&response_type=token&redirect_uri={2}", logonUriString, clientId, redirectUriString); 

     requestUriStr += "&scope=stream"; 

     var requestUri = new Uri(requestUriStr, UriKind.RelativeOrAbsolute); 
     var redirectUri = new Uri(redirectUriString, UriKind.RelativeOrAbsolute); 

     var result = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, requestUri, redirectUri); 

     if (result.ResponseStatus != WebAuthenticationStatus.Success) 
     { 
      throw new Exception("Login failed: " + result.ResponseErrorDetail); 
     } 

回答

3

我發現我的問題。來源:http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/13d3742d-4b6b-444e-840e-a4db11462a08

事實證明,如果你使用Fiddler來調試你的HTTP請求,它會 使WebAuthenticationBroker停止工作。這可能是也可能不是 與此應用程序中提供的「Decrypt HTTPS流量」選項有關,但是隻要我關閉Fiddler,WebAuthenticationBroker開始 再次工作。我可以通過再次啓動Fiddler 來隨意複製該bug,並通過關閉它來解決問題。

我沒有先進的研究作爲是否啓用或禁用 提琴手的HTTPS選項會影響使用 WebAuthenticationBroker類和方法,但在第一眼看到它看起來像 勉強禁用HTTPS將使它再次工作。我通常親自將其關閉以保證安全。

因此,當我正在寫/調試時,Fiddler打開了整個時間。我關閉了Fiddler,它第一次運作!

相關問題