我正在使用webview加载网站。我设法运行应用程序。 但我的问题是,如果我输错了密码,我就无法加载网站,只显示白屏。
如果我传递了正确的用户名/密码,它将加载该网站。 有没有办法处理我的身份验证用户名/密码是正确还是错误?
我正在使用此代码。
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodNTLM])
{
NSURLCredential *credentail = [NSURLCredential
credentialWithUser:@"username"
password:@"Password"
persistence:NSURLCredentialPersistenceForSession];
[[challenge sender] useCredential:credentail forAuthenticationChallenge:challenge];
}}
上面的代码中包含正确的用户名和密码。如果我将用户名更改为“用户”或密码为“通过”,我无法加载该网站。如何捕获身份验证错误?
感谢。
答案 0 :(得分:5)
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
//receive a authenticate and challenge with the user credential
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodNTLM] &&
[challenge previousFailureCount] == 0)
{
NSURLCredential *credentail = [NSURLCredential
credentialWithUser:@"username"
password:@"password"
persistence:NSURLCredentialPersistenceForSession];
[[challenge sender] useCredential:credentail forAuthenticationChallenge:challenge];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error Message" message:@"Invalid credentails" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
}
感谢。 :)