Автоматический вход с использованием ASIHTTPRequest в веб-форме входа в UIWebView

Я пытаюсь выполнить автоматический вход с использованием библиотеки ASIHTTPRequest в веб-форме входа в систему внутри UIWebView. Я хочу сделать его постоянным, поэтому следующие запросы, сделанные пользователем в 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, учетные данные не сохраняются внутри него и получают неаутентифицированные запросы.

Есть ли способ поделиться учетными данными между миром ASIHTTPRequest и миром UIWebView?

Заранее спасибо.


person sneridagh    schedule 07.05.2012    source источник


Ответы (1)


ОК, код совершенно правильный, я пропустил одно значение POST при формировании запроса. Каждое веб-приложение может потребовать свои собственные параметры POST, а не только имя пользователя и пароль. Мой отсутствующий параметр:

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

Теперь это работает как шарм.

person sneridagh    schedule 08.05.2012