La définition d'un Utilisateur.L'identité.Nom du contrôleur de constructeur
De mes actions qui vont interagir avec le compte de l'Utilisateur, je voudrais créer un "Utilisateur" de l'objet en plus de l'ajout de l'objet pour ViewData["Utilisateur"]" dès que toute action sur mon contrôleur est appelé.
Si l'Utilisateur est connecté, il saisira l'Utilisateur des informations à partir de la base de données, si ce n'est, "Utilisateur" de l'objet sera juste valeur null.
J'ai essayé d'accès de l'Utilisateur".L'identité.Nom" dans le contrôleur de constructeur, mais il n'a pas été créé avant toute action que l'on appelle.
Je regardais personnalisé autorisation de filtres, mais ceux qui ne me permet pas de créer la "Utilisateur" de l'objet et de le stocker dans le ViewData.
Ceci est un bref extrait de ce que j'aimerais réaliser:
[Authorize]
public class HomeController : Controller
{
User TheUser;
public HomeController()
{
TheUser = User.Identity.IsAuthenticated ? UserRepository.GetUser(User.Identity.Name) : null;
ViewData["TheUser"] = TheUser;
}
}
OriginalL'auteur Omar | 2009-08-21
Vous devez vous connecter pour publier un commentaire.
J'ai créé une coutume de la base de Contrôleur de classe et a ajouté un "CurrentUser de la propriété".
Dans la méthode Initialize, j'ai placé la logique pour obtenir de l'utilisateur, puis l'ajouter à la ViewData et le "CurrentUser" propriété du contrôleur.
J'ai eu mon contrôleurs hériter de la coutume de la base de Contrôleur de classe et j'ai été en mesure de référence "CurrentUser" variable n'importe où dans le contrôleur:
Puneet, veuillez jeter un oeil à mon montage. Ma réponse était pour ASP.NET MVC 1. J'ai mis à jour pour remplacer les
Initialize
méthode qui est de l'accepter endroit pour faire ce genre de chose dans le MVC 2 et 3Merci beaucoup, j'ai vraiment aprécié ce. Regardé pendant une longue période, votre réponse était agréable et concise.
OriginalL'auteur Omar
- Je configurer mon contrôleur de base d'une manière similaire à l'aide de la constuctor méthode, et j'ai pu lire cette info Utilisateur sur les éléments suivants mannner. Note: je ne stocker le nom d'utilisateur, pas l'Utilisateur de l'objet, mais le but de mon code est de montrer comment vous pouvez obtenir les informations nécessaires dans le contriuctor méthode.
System.Threading.Thread.CurrentPrincipal
fixe pour moi - merci beaucoupOriginalL'auteur MattSlay
OriginalL'auteur Martin
L'Utilisateur doit-il être instancié pour chaque action de Contrôleur ou simplement celles qui le sont?
Si vous créez un ActionFilterAttribute, vous avez accès au contexte de Contrôleur. Pas sûr si c'est vrai pour AuthorizationFilters, mais vous pouvez essayer quelque chose comme ceci:
Alors, joignez-y la nécessaire les actions du contrôleur.
OriginalL'auteur JoshJordan