4

J'essaie d'intégrer mon service Web pour l'authentification à l'aide d'Azure AD. La réponse d'Azure AD varie chaque fois. Quand j'ouvre mon site dans le navigateur normal de firefox, l'IsAuthenticated est vrai.L'API Azure AD renvoie System.Security.Principal.GenericIdentity.IsAuthenticated comme étant toujours false

IsAuthenticatedAsTrue

Ouverture dans un navigateur privé, le IsAuthenticated est faux.

IsAuthenticatedAsFalse

La seule différence que je peux voir est, le vrai isAuthenticated est de ClaimsIdentity et isAuthenticated faux est de GenericIdentity.

Ce qui suit est mon code startup.auth.

public partial class Startup 
{ 
    private static string clientId = ConfigurationManager.AppSettings["ClientId"]; 
    private static string aadInstance = ConfigurationManager.AppSettings["AADInstance"]; 
    private static string tenantId = ConfigurationManager.AppSettings["TenantId"]; 
    private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["PostLogoutRedirectUri"]; 
    private static string authority = aadInstance + tenantId; 

    public void ConfigureAuth(IAppBuilder app) 
    { 
     app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); 

     app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

     app.UseOpenIdConnectAuthentication(
      new OpenIdConnectAuthenticationOptions 
      { 
       ClientId = clientId, 
       Authority = authority, 
       PostLogoutRedirectUri = postLogoutRedirectUri 
      }); 
    } 
} 

Voici mon code pour envoyer la demande d'authentification à AzureAD

public void LoginUsingAzure() 
    { 
     HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" }, 
       OpenIdConnectAuthenticationDefaults.AuthenticationType); 
    } 
+0

Êtes-vous en train de dire que vous avez ouvert une fenêtre privée et que vous ne vous êtes pas connecté? Parce que la fenêtre privée ne partage pas les sessions avec l'autre fenêtre. – juunas

+0

ce problème est également reproduit dans une fenêtre normale. après m'être connecté à mon site dans un navigateur normal, puis effacer le cache et les cookies dans le navigateur, et quand j'essaye de me connecter à nouveau, je suis confronté à ce problème. Ce problème se reproduit dans tous les navigateurs. Y a-t-il quelque chose que j'ai besoin de configurer dans le portail Azure AD? –

+0

En effaçant les cookies, n'effacez-vous pas le cookie d'authentification ASP.NET? N'est-il pas un peu attendu qu'il dirait alors que vous n'êtes pas authentifié? Le GenericIdentity étant là signifie simplement que vous n'avez pas encore authentifié. – juunas

Répondre

0

Ce problème a été résolu. La raison de ce problème est le problème de dépendance. Trouvé la réponse dans le lien ci-dessous stackoverflow.

ASP.NET_SessionId + OWIN Cookies do not send to browser

Installation Kentor.OwinCookieSaver -Version 1.1.0 package NuGet, résolu mon problème.

0

Je suis en train de reproduire ce problème a toutefois échoué. Je suis en train de tester l'application Web en utilisant la version 50.1.0 avec une installation propre.

Pour résoudre ce problème, je vous suggère de réinstaller Firefox avec cette version.

Voici la figure de test pour votre référence:

enter image description here

+0

J'ai réinstallé mon firefox, et j'utilise la version 51.0.13. mais je suis toujours confronté à ce problème. Puis-je savoir, quel type d'authentification utilisez-vous? Est-ce openid ou oauth? –

+0

Je testais [cet exemple de code] (https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect) en utilisant la connexion openId. –

+0

Je peux toujours reproduire mon problème. J'ai utilisé le même exemple de code pour la mise en œuvre. après m'être connecté à mon site, puis effacer le cache et les cookies dans le navigateur, et quand j'essaie de me reconnecter, je suis confronté à ce problème. Y a-t-il quelque chose que j'ai besoin de configurer dans le portail Azure AD? –