2015-08-31 4 views
0

J'utilise la bibliothèque ADAL iOS pour l'authentification Azure. Cependant, j'ai un problème si je me suis d'abord connecté avec un compte, puis je me déconnecte et je me connecte avec un autre compte. Je reçois l'erreur suivante, même si j'ai défini 'AD_PROMPT_ALWAYS'.ADAL pour l'exception iOS avec une connexion utilisateur différente

2015-08-31 12:50:39.939 PortalDev[908:174411] ADALiOS [2015-08-31 11:50:39 - xxx-xxx-xxx-xxx-xxx] ERROR: Error raised: 19. Additional Information: Domain: ADAuthenticationErrorDomain ProtocolCode:(null) Details:Different user was authenticated. Expected: '[email protected]'; Actual: '[email protected]'. Either the user entered credentials for different user, or cookie for different logged user is present. Consider calling acquireToken with AD_PROMPT_ALWAYS to ignore the cookie.. ErrorCode: 19. 
2015-08-31 12:50:39.943 PortalDev[908:174411] ADAL Error: 19, Different user was authenticated. Expected: '[email protected]'; Actual: '[email protected]'. Either the user entered credentials for different user, or cookie for different logged user is present. Consider calling acquireToken with AD_PROMPT_ALWAYS to ignore the cookie. (status: 2) 

je franchis le cache, et essayé et effacé les biscuits je pense:

if (allItems.count > 0) { 
      [cache removeAllWithError:&error]; 
      if (error) { 
       CLSNSLog(@"Error clearing cache: %@", error.errorDetails); 
      } else { 
       CLSNSLog(@"Items removed."); 
      } 
     } else { 
      CLSNSLog(@"Was no user cached."); 
     } 


     NSHTTPCookieStorage* cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
     NSArray* cookies = cookieStorage.cookies; 
     if (cookies.count) 
     { 
      for(NSHTTPCookie* cookie in cookies) 
      { 
       CLSNSLog(@"Deleting Auth Cookie %@.", cookie.name); 
       [cookieStorage deleteCookie:cookie]; 
      } 
      CLSNSLog(@"Auth Cookies cleared."); 
     } 

Mais je ne pense pas qu'il y avait des cookies pour effacer. Le nom d'utilisateur est pré-rempli lorsque j'obtiens la page d'ouverture de session. Je pensais que ça marchait bien il y a quelques semaines/mois, mais maintenant il semble y avoir un problème. Je construis la bibliothèque fraîche aujourd'hui à partir de la dernière source GitHub.

Des suggestions comment je peux rendre le nom d'utilisateur de commutation possible?

Répondre

0

Le message d'erreur indique:

attendu: '[email protected]'; Réel: '[email protected]'

Ceci indique qu'un paramètre userId est passé à acquireToken. Cela entraînerait le pré-remplissage du champ de nom d'utilisateur dans la page de connexion. Toutefois, l'erreur indique que lorsque l'utilisateur s'est connecté, il a changé le champ du nom d'utilisateur en un autre utilisateur. Comme vous avez demandé un utilisateur spécifique mais que vous n'avez pas obtenu de jeton pour cet utilisateur, acquireToken renvoie une erreur. Voir cette réponse pour plus de détails:

ADAL iOS - Different user was authenticated. Expected [email protected], actual [email protected]

+0

souhaite que je l'avais réalisé qu'il ya quelques jours. J'ai passé le nom d'utilisateur si c'était connu, pour faciliter la connexion la deuxième fois, mais je n'ai pas réalisé que c'était la cause du problème. Je pensais que c'était seulement pour pré-remplir le formulaire ... Ça aurait dû être un peu plus net! –