Para mis acciones que van a interactuar con la cuenta del usuario, me gustaría crear un objeto "TheUser" además de agregar ese objeto a "ViewData [" TheUser "]" tan pronto como se llame a cualquier acción en mi controlador.Definición de un usuario con User.Identity.Name en el constructor del controlador
Si el usuario está conectado, obtendrá la información del usuario de la base de datos, de lo contrario, el objeto "TheUser" será nulo.
Intenté acceder a "User.Identity.Name" en el constructor del controlador, pero no se crea antes de llamar a ninguna acción.
Estaba buscando filtros de autorización personalizados, pero esos no me permitían crear el objeto "TheUser" y almacenarlo en ViewData.
Este es un breve fragmento de lo que le gustaría lograr:
[Authorize]
public class HomeController : Controller
{
User TheUser;
public HomeController()
{
TheUser = User.Identity.IsAuthenticated ? UserRepository.GetUser(User.Identity.Name) : null;
ViewData["TheUser"] = TheUser;
}
}
esta respuesta me ayudó para MVC3 http://stackoverflow.com/a/1506311/511438 –