W przypadku moich działań, które będą współdziałać z kontem użytkownika, chciałbym utworzyć obiekt "TheUser" oprócz dodania tego obiektu do "ViewData [" TheUser "]" jak tylko zostanie wywołana jakakolwiek akcja na moim kontrolerze.Definiowanie użytkownika za pomocą User.Identity.Name w konstruktorze sterownika
Jeśli Użytkownik jest zalogowany, pobierze informacje Użytkownika z bazy danych, jeśli nie, obiekt "TheUser" będzie pusty.
Próbowałem uzyskać dostęp do "User.Identity.Name" w konstruktorze kontrolera, ale nie został on utworzony przed wywołaniem jakiejkolwiek akcji.
Szukałem niestandardowych filtrów autoryzacji, ale te nie pozwoliłyby mi utworzyć obiektu "TheUser" i przechowywać go w ViewData.
ten krótki fragment, co chciałbym osiągnąć:
[Authorize]
public class HomeController : Controller
{
User TheUser;
public HomeController()
{
TheUser = User.Identity.IsAuthenticated ? UserRepository.GetUser(User.Identity.Name) : null;
ViewData["TheUser"] = TheUser;
}
}
ta odpowiedź pomogła mi za MVC3 http://stackoverflow.com/a/1506311/511438 –