• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: [iPhone] Authentication failing on device after changing registration data
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [iPhone] Authentication failing on device after changing registration data


  • Subject: Re: [iPhone] Authentication failing on device after changing registration data
  • From: Roland King <email@hidden>
  • Date: Thu, 12 Nov 2009 15:43:07 +0800

are you definitely receiving a challenge the *second* time you run the app? It is possible that the server sends a cookie representing the login which the phone has now cached and is sending along with the request (automatically) which is failing the login.

One thing you could try to see if it's that is to find the cookie storage on startup and clean it out explicitly. That might then make the server do the challenge again.

Just a shot-in-the-dark idea.

Antonio Nunes wrote:
In the app I'm developing I connect to a server, to request some data. This works fine. An authentication challenge is received and processed, and the connection performs beautifully. If however I then change the username/password, and attempt to connect again, the authentication is refused by the server, but only when running on the device (iPhone/iPod Touch); when running in the simulator changing to another account works just fine. This problem persists between subsequent runs of the app. The only way to be able to change to a new account on the device, is to delete the app completely from the device, and then install it anew. In the simulator however, I can change accounts and successfully connect to the sever as often as I want, including within the same app session.

I verified the password and username are always correct when authenticating.

This is how I handle the challenge:

=====================
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
NSString *username = [[NSUserDefaults standardUserDefaults] objectForKey:userEmailAddressKey];
NSString *password = [[NSUserDefaults standardUserDefaults] objectForKey:uUserPasswordKey];


    NSInteger failureCount = challenge.previousFailureCount;

if (failureCount == 0 && username && password) {
self.credential = [NSURLCredential credentialWithUser:username password:password
persistence:NSURLCredentialPersistenceForSession];


         [[NSURLCredentialStorage sharedCredentialStorage] setDefaultCredential:self.credential
                                           forProtectionSpace:[(MyAppDelegate *)[[UIApplication sharedApplication] delegate] myProtectionSpace]];

         [[challenge sender] useCredential:self.credentialforAuthenticationChallenge:challenge];
    } else {
         [[challenge sender] continueWithoutCredentialForAuthenticationChallenge:challenge];
    }
}
=====================

The protection space is created when the app starts:

=====================
self.myProtectionSpace = [[[ NSURLProtectionSpacealloc] initWithHost:@"www.some.url"
   										                          port:80
												protocol:@"http"
                             									realm:nil
								authenticationMethod:NSURLAuthenticationMethodDefault] autorelease];
=====================

The connection is created thus:

=====================
-(void)fetchURL
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSMutableURLRequest *theRequest = [NSMutableURLRequest  requestWithURL:[NSURLURLWithString:self.urlString]];

    switch (method) {
         case GET:
              [theRequest setHTTPMethod:@"GET"];
break;
         case POST:
              [theRequest setHTTPMethod:@"POST"];
              [theRequest setValue:[NSString stringWithFormat:@"%d", [self .postDatalength]] forHTTPHeaderField:@"Content-Length"];
              [theRequest setValue:@"application/xml" forHTTPHeaderField:@"Content-Type"];
              [theRequest setHTTPBody:self.postData];
break;
    }

    [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
    [[NSRunLoop currentRunLoop ] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:60]];
    [pool release];
}
=====================

Any ideas as to why I can't change accounts on the device, not even after exiting and restarting the app? Since the code works in the simulator, and I can't myself find anything wrong with it, it looks like a bug in the iPhone OS, which I should file with Apple. Is anyone familiar with an issue like this, and/or does anyone have a workaround so that we can change accounts without having to delete and re-install the app?

-António

-----------------------------------------------------------
And could you keep your heart in wonder
at the daily miracles of your life,
your pain would not seem less wondrous
than your joy.

--Kahlil Gibran
-----------------------------------------------------------



----------------------------------------------------
There is a world of difference between
searching for happiness and choosing
to be happy.
----------------------------------------------------




_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: [iPhone] Authentication failing on device after changing registration data
      • From: Antonio Nunes <email@hidden>
References: 
 >[iPhone] Authentication failing on device after changing registration data (From: Antonio Nunes <email@hidden>)

  • Prev by Date: [iPhone] Authentication failing on device after changing registration data
  • Next by Date: Re: Close/Minimize the app
  • Previous by thread: [iPhone] Authentication failing on device after changing registration data
  • Next by thread: Re: [iPhone] Authentication failing on device after changing registration data
  • Index(es):
    • Date
    • Thread