Broken HTTP basic authentication in web apps on iO

2019-03-14 04:50发布

问题:

I'm using basic authentication for a simple app but it stopped working in web app mode on iOS 7. It works in Safari, it worked on iOS 6 both in Safari and as a standalone web app, but after migrating to iOS 7 it shows only white screen.

Did anyone experience the same problem?

回答1:

I found that by removing windows auth from iis, and leaving only basic with the realm set to the domain solved this issue for me.

Give that a try.



回答2:

I think this may be related to the dialog problem described here.

Standard dialogs are not working at all, such as alert, confirm or prompt.

The login prompt that is shown to authenticate the user is probably blocked (does not work or is not visible) and that is why the web app does not pass through the authentication phase.

I suppose Apple will have to fix this bug in a future release.

Edit: After upgrading to iOS 7.0.3 basic authentication suddenly started to work again also in home screen web app mode. Login prompt is displayed and everything works as expected.



回答3:

This worked for me.

+ (void) setBasicAuth
{
  NSURLCredentialStorage* store = 
    [NSURLCredentialStorage sharedCredentialStorage];

  NSURLCredential* creds = 
    [NSURLCredential credentialWithUser:@"user" 
                               password:@"pass"
                            persistence:NSURLCredentialPersistenceForSession];

  NSURLProtectionSpace* protectionSpace = 
    [[NSURLProtectionSpace alloc] initWithHost:@"your-host" 
                                          port:80 
                                      protocol:@"http" 
                                         realm:@"Your Realm"
                          authenticationMethod:NSURLAuthenticationMethodDefault];

  [store setCredential:creds forProtectionSpace:protectionSpace];
}


回答4:

I‘m experiencing the exact same problem. It works when putting username and password in the url of your web app and