2010-11-18 30 views
2

Je suis l'administrateur et je dois supprimer un utilisateur.Adhésion à ASP.NET: utilisateur sûr supprimer

Si l'utilisateur est authentifié au moment où je le supprime, quelle est la meilleure stratégie pour forcer l'utilisateur supprimé à se déconnecter à la prochaine requête? Dois-je gérer cette opération dans l'événement Application_AuthenticateRequest? En d'autres termes, peut-il être une idée à vérifier dans l'événement AuthenticateRequest si l'utilisateur existe toujours et, dans le cas contraire, supprimer tous les cookies et rediriger vers la page d'ouverture de session?

Répondre

2

Après quelques recherches et évaluation, enfin j'ai trouvé une stratégie pour gérer ce scénario, donc, dans Global.asax:

protected void Application_AuthenticateRequest() 
{ 
    var user = HttpContext.Current.User; 
    if (user != null) 
    { 
     if (Membership.GetUser(user.Identity.Name, true) == null) 
     { 
      CookieHelper.Clear(); 
      Response.RedirectToRoute("Login"); 
     } 
    } 
} 

Lorsque la demande est authentifiée, on vérifie que l'utilisateur existe toujours dans la système, sinon tous les cookies seront supprimés et la demande sera redirigée vers la page de connexion.

1

Si vous les supprimez, je suppose que leur prochaine requête sera très probablement erronée.

Même s'ils ont le cookie d'authentification, toute page qui vérifie la base de données par rapport à leur UserID lèverait évidemment une exception.

Vous pouvez très probablement simplement désactiver l'utilisateur au lieu de devoir les supprimer.

+0

Ok. Je dois sûrement désactiver l'utilisateur. Mais comment gérer le "scénario utilisateur supprimer"? Peut-être une idée à vérifier dans l'événement Application_AuthenticatedRequest si l'utilisateur existe déjà et si ce n'est pas pour supprimer tous les cookies et rediriger à la connexion? –

+0

Quelle est la meilleure stratégie pour gérer cette situation? –

+0

Ouais, l'application va probablement juste erreur si elles sont supprimées lors de l'utilisation. Dans ce cas, quelle est la différence entre voir une erreur ou la page de connexion; ils ne sont plus utilisateurs de toute façon. – Greg