[Authorize]
вводит дополнительное перенаправление, которое очищает TempData
(подробности объяснил Tvanfosson). Таким образом, чтобы это работало, вы можете использовать флаг в методе, на который вы перенаправляете, например
return RedirectToAction("Confirm", new { status = "Success!" });
(учитывая, что у вас объявлен следующий маршрут и метод действия:)
routes.MapRoute("Confirmation",
"Account/Confirm/{status}",
new { controller = "Account", action = "Confirm", status = "" });
public ActionResult Confirm(string status)
{
return View(status);
}