私はアカウント管理コントローラーを作成しており、自分のユーザーのアカウントの削除を個別に処理する必要があります。
[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は、Request.IsAuthenticated値とPage.User.Identity値がFormsAuth.SignOut()の後に設定されているため、DeleteSelfビューを表示しているときにログアウトしたユーザー名を表示します。
新しいアクションShowDeleteSelfMessageを追加すると問題を解決できますが、この解決策は好きではありません。
...
{
FormsAuth.SignOut();
return RedirectToAction("ShowDeleteSelfMessage");
}
...
public ActionResult ShowDeleteSelfMessage()
{
return View("DeleteSelf");
}
他のアイデアはありますか?ありがとうございました!