NSURLConnection认证挑战,即使它不应该

时间:2013-03-27 09:09:35

标签: ios http authentication nsurlconnection

我可以使用NSURL进行身份验证,用户可以分配用户名和密码。但是,我遇到了另一个问题。如果我打开它http://html5test.com/,它也会弹出并询问用户名和密码。我得到了身份验证,即使它不应该得到。我想知道怎么做。

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
   if(!_auth)
    {
   connection_for_auto = [[NSURLConnection alloc] initWithRequest:request delegate:self];
          firsttimeonly=TRUE;
         [connection_for_auto start];
        NSLog(@"Request >>  %@ and !firsttimeonly",request);
        return NO;
    }
    self.lbl_error.hidden = YES; //hide error message label
    return YES;

}

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{

    checkTochangeUIalert=TRUE;
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Login"
                                                    message:nil
                                                   delegate:self
                                          cancelButtonTitle:@"Cancel"
                                          otherButtonTitles:@"OK",@"Auto", nil];

    alertView.transform=CGAffineTransformMakeScale(1.0, 0.75);
    alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
    [alertView show];
}

1 个答案:

答案 0 :(得分:0)

我想我找到了办法。我需要检查一下我使用的验证方法。

if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodHTTPBasic] || [challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodNTLM])
{
.............
}