Я пишу контроллер управления учетной записью и должен отдельно обработать удаление учетной записи собственного пользователя:
[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");
}
Но при частичном представлении LogOnUserControl.ascx по-прежнему показывает только что вышедшее из системы имя пользователя при отображении представления DeleteSelf, поскольку значения Request.IsAuthenticated и Page.User.Identity по-прежнему установлены после FormsAuth.SignOut ().
Добавление нового действия ShowDeleteSelfMessage может решить проблему, но мне не нравится это решение:
...
{
FormsAuth.SignOut();
return RedirectToAction("ShowDeleteSelfMessage");
}
...
public ActionResult ShowDeleteSelfMessage()
{
return View("DeleteSelf");
}
Есть еще идеи? Спасибо!