Je suis en train d'écrire un contrôleur de gestion de compte et doivent traiter la suppression du compte propre utilisateur séparément:Effacer la valeur Request.IsAuthenticated après SignOut() sans RedirectToAction()
[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Delete(string userName, string confirmButton)
{
MembershipService.DeleteUser(userName);
if (User.Identity.Name.Equals(userName,
StringComparison.InvariantCultureIgnoreCase))
{
FormsAuth.SignOut();
return View("DeleteSelf");
}
else
return RedirectToAction("Index");
}
Mais vue partielle LogOnUserControl.ascx montre encore juste déconnecté le nom d'utilisateur lors de l'affichage de la vue DeleteSelf, car les valeurs Request.IsAuthenticated et Page.User.Identity sont toujours définies après FormsAuth.SignOut().
Ajout d'une nouvelle ShowDeleteSelfMessage d'action pourrait résoudre le problème, mais je n'aime pas cette solution:
...
{
FormsAuth.SignOut();
return RedirectToAction("ShowDeleteSelfMessage");
}
...
public ActionResult ShowDeleteSelfMessage()
{
return View("DeleteSelf");
}
D'autres idées? Je vous remercie!
J'ai essayé et appris ce que cela est malheureusement équivalent à RedirectToAction ("DeleteSelf ") –
N'est-ce pas différent de votre OP, qui est de retour Voir (" DeleteSelf ")? –
Malheureusement, la même chose. Mais je pense maintenant qu'ajouter une action séparée pour montrer une vue est un modèle commun. –