0
votes

Déconnexion d'ADFS à l'aide de C #

J'ai créé une application WebForme ASP.NET en utilisant des ADFS. Connectez-vous et déconnectez-vous parfaitement à l'aide de la méthode par défaut fournie avec le modèle.

par exemple de la méthode du bouton de signalisation inclus dans le modèle P>

protected void Unnamed_LoggingOut(object sender, LoginCancelEventArgs e)
        {
            // Redirect to ~/Account/SignOut after signing out.
            string callbackUrl = Request.Url.GetLeftPart(UriPartial.Authority) + Response.ApplyAppPathModifier("~/Account/SignOut");

            HttpContext.Current.GetOwinContext().Authentication.SignOut(
                new AuthenticationProperties { RedirectUri = callbackUrl },
                WsFederationAuthenticationDefaults.AuthenticationType,
                CookieAuthenticationDefaults.AuthenticationType);
        }


0 commentaires

3 Réponses :


0
votes

Avez-vous essayé le code ci-dessus que vous avez posté directement sans la minuterie? et cela a-t-il fonctionné?

Aussi, essayez de mettre en œuvre le code ci-dessous et voyez si cela fonctionne. xxx


1 commentaires

Le module renvoie null. Je reçois une erreur: la référence d'objet n'est pas définie sur une instance d'un objet.



0
votes

Qu'est-ce qui a fonctionné pour moi, c'est sur le temps d'attente d'appeler l'événement clic d'un bouton masqué qui provoque à son tour le code ci-dessous.

// Redirect to ~/Account/SignOut after signing out.


   string callbackUrl = Request.Url.GetLeftPart(UriPartial.Authority) + Response.ApplyAppPathModifier("~/Account/SignOut");

        HttpContext.Current.GetOwinContext().Authentication.SignOut(
            new AuthenticationProperties { RedirectUri = callbackUrl },
            WsFederationAuthenticationDefaults.AuthenticationType,
            CookieAuthenticationDefaults.AuthenticationType);


0 commentaires

0
votes

ADFS est le serveur responsable de l'authentification de l'utilisateur et de la gestion de la session utilisateur. Le site Web / la forme utilise simplement ce service. Il est logique qu'un site qui utilise ce service ne peut pas avoir un contrôle total sur celui-ci. Il faudrait plus de sens pour moi de vous déconnecter à l'utilisateur du serveur ADFS et de faire le soulevez ce serveur pour vous.

Remarque Le serveur ADFS conserve un utilisateur connecté au serveur ADFS et indique que lorsqu'un utilisateur demande un accès à une ressource, ce manifeste dans un accès Access_Token. Ce sont des choses différentes. Typiquement, lorsque vous signerez quelqu'un avec un produit comme Identity Server, afin de vous déconnecter, vous devez faire deux choses:

  • révoquer le jeton d'accès
  • Déconnectez-vous sur le serveur d'authentification (si qui est souhaité, on pourrait argumenter que ce n'est pas souhaitable)

    Notez la différence explicite entre la session et le jeton. Vous remarquerez que ces concepts sont également dans ADFS. Après une recherche rapide Google, vous trouverez la différence entre WebsSolitifetime et Tokenlifetime. Je suggérerais de configurer ceux-ci pour invalider les jetons et les sessions, puis vous enregistrez l'utilisateur après une quantité de minutes x.

    J'espère que cela aide.


0 commentaires