2010-07-28 21 views
1

我做了一個使用UIWebView來顯示使用基本認證的站點的應用程序。它自iOS3.2起停止顯示內容(在iPhone和iPad上)。UIWebView不持久認證iOS3.2/iOS4

我的用於認證用戶的做法是:

  1. 創建NSURLConnection的
  2. 實施didReceiveAuthenticationChallenge提供憑證
  3. 實施didReceiveResponse接收響應和在一個UIWebView加載請求,即[web視圖的loadRequest :]

自從iOS3.2以來,認證被破壞; UIWebView似乎不再檢查共享憑證存儲。

對於iPhone上的iOS4,我設法通過愚蠢的方式解決了這個問題,包括URL中的登錄信息(即https://username:[email protected])到傳遞給webView的初始加載請求。

對於iPad上的iOS3.2,這還不夠。初始請求已經過驗證,但後續的調用仍未通過驗證。

有什麼建議嗎?

+0

我發現它*保持身份驗證,不是主機名,而是主機和路徑。因此,如果https://www.somesite.com/dir1通過身份驗證: https://www.somesite.com/dir1/page1.htm將通過身份驗證;和https://www.somesite.com/dir2/page1.htm不會被認證。 – 2010-07-28 04:24:03

回答

-1

使用setDefaultCredential:forProtectionSpace:在共享NSURLCredentialStorage web視圖仍然使用默認的憑據,當您使用setCredential:forProtectionSpace這是行不通的。