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