2011-07-12 2 views
1

J'ai roulé mon propre fournisseur STS en utilisant WIF et j'ai également quelques applications qui sont des parties utilisatrices. Le délai d'attente de session sur le fournisseur STS est défini sur 30 minutes, de même que les parties dépendantes. Lorsqu'une personne souhaite se déconnecter des parties utilisatrices et du fournisseur STS, elle émet un paramètre de requête de déconnexion fédérée vers le fournisseur STS.Windows Identity Foundation comment utiliser correctement la déconnexion fédérée?

https://STSProvider.com/Default.aspx?wa=wsignout1.0

Ceci crée une page avec des balises d'image qui ont des demandes logout fédérées pour toutes les parties se fiant à leur signature en. Le problème avec ceci est que, puisque leur session a expiré sur le fournisseur STS, il les renvoie à l'écran de connexion. Et la page avec tous les tags img de déconnexion fédérée pour les parties de confiance ne sont pas servis. Ainsi, la personne reste connectée à toutes les parties utilisatrices. Quelle est la meilleure façon de gérer une déconnexion fédérée où la session STS ne peut pas être indéfinie?

Répondre

2

Je suppose que vous authentifiez l'utilisateur sur le STS en utilisant SessionSecurityToken. Si tel est le cas, vous pouvez essayer de définir sa propriété IsPersistent sur true.

var token = new SessionSecurityToken(...args...); 
token.IsPersistent = true; 
+0

Cela rendrait leur session indéfinie. Je veux qu'ils soient en mesure d'expirer pour des raisons de sécurité, mais je veux aussi qu'ils puissent se déconnecter correctement. –

+0

Vous pouvez peut-être essayer avec cette signature constructeur: 'public SessionSecurityToken (IClaimsPrincipal claimsPrincipal, \t Durée de vie TimeSpan)'. Je suppose que le délai d'expiration de la session n'affectera pas la durée de vie du jeton. – shizik

+1

Une autre option consiste à rediriger la demande de sortie vers une page non protégée, puis de rendre votre page de connexion pour tous les RP et en même temps appeler SignOut à partir de WSFederationAuthenticationModule si l'utilisateur est authentifié sur le STS. – shizik

Questions connexes