MonoTouch プロジェクトでは、基本認証で保護された URL をロードする UIWebView があります。基本的な認証ヘッダーを手動で追加することにより、URL への最初の要求に対して認証することができました。
UIWebView webView = new UIWebView(View.Frame);
... initialize webView
NSMutableUrlRequest request = new NSMutableUrlRequest(new NSUrl("http://example.com"));
string header = "Basic " + Convert.ToBase64String (Encoding.UTF8.GetBytes("domain\\username:password"));
request["Authorization"] = header;
webView.LoadRequest(request);`
UIWebView で開かれる最初のページでうまく機能します。しかし、webview 内で href リンクをクリックすると、リクエストは 401 で失敗します。Fiddler を介して送信されたヘッダーを調べたところ、最初のリクエストの後にヘッダーが送信されません。ShouldStartLoad デリゲートのすべてのリクエストにヘッダーを挿入しようとしましたが、結果はありませんでした。
webView.ShouldStartLoad = (w, request, navType) => {
((NSMutableUrlRequest)request)["Authorization"] = header;
return true;
};
UIWebView のすべてのリクエストに Authorization http ヘッダーを挿入するにはどうすればよいですか?