0

UIWebView内のWebベースのフォームログインでASIHTTPRequestライブラリを使用して自動ログインを実行しようとしています。永続的にしたいので、UIWebViewでユーザーが行う次の要求は、ネットワークライブラリから提供された資格情報を使用します。

私はこれを試しました:

- (void)viewDidLoad {

[super viewDidLoad];
NSString *fullURL = @"http://myweb/loginform";

NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setUseKeychainPersistence:YES];
[request setUseSessionPersistence:YES];
[request setUseCookiePersistence:YES];
[request setPostValue:@"myuser" forKey:@"__ac_name"];
[request setPostValue:@"mypass" forKey:@"__ac_password"];
[request setDelegate:self];
[request startAsynchronous];

}

- (void)requestFinished:(ASIHTTPRequest *)request {
NSError *error = [request error];
if (!error) {
    [webView loadData:[request responseData] MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[request url]]; }
}

しかし、UIWebViewを介してナビゲートしようとすると、資格情報がUIWebView内に保持されず、認証されていない要求を受け取ります。

ASIHTTPRequestワールドとUIWebViewワールドの間でクレデンシャルを共有する方法はありますか?

前もって感謝します。

4

1 に答える 1

0

OK、コードは完全に正しいです。リクエストの作成中に POST 値が 1 つ欠落していました。すべての Web アプリには、ユーザー名とパスワードだけでなく、独自の POST パラメーターが必要になる場合があります。私の不足しているパラメーターは次のとおりです。

[request setPostValue:@"1" forKey:@"form.submitted"];

今では魅力のように機能します。

于 2012-05-08T08:39:46.123 に答える