域登录在ios App中影响了didReceiveAuthenticationChallenge

时间:2012-09-10 18:55:56

标签: ios uiwebview

我正在开发一款需要从我们基于iis的网站下载网页的应用。如果我登录到我的iPad上的无线连接域,我连接的站点似乎使用该登录名作为我的凭据。但是,如果我没有连接到域,或者我作为无法访问该页面的用户连接,则会触发didReceiveAuthenticationChallenge,否则不会。NSError *error = nil; // assign the cmh url from user prefs NSURL *url = [NSURL URLWithString:cmhUrl]; // Put that URL into an NSURLRequest NSURLRequest *req = [NSURLRequest requestWithURL:url]; [req setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; // Create a connection that will exchange this request for data from the URL connection = [[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:YES]; 。如果我使用Safari连接到同一页面,它会要求进行身份验证。我希望每次都能让应用程序进行身份验证。任何帮助将不胜感激。

请求页面的代码:

{{1}}

1 个答案:

答案 0 :(得分:0)

在Safari中进行身份验证时,auth-token会保存在NSHTTPCookieStorage中。当您从代码中提出请求时,存储中的所有Cookie都会添加到标头中,因此无需再次请求令牌。
在提出请求之前,请尝试清除存储空间:

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in cookieStorage.cookies) {
    [cookieStorage deleteCookie:cookie];
}

希望这有帮助。