Obtenir l'identité actuelle ASP.NET utilisateur dans la vue
- Je utiliser ASP.NET Identité 2.0 et MVC. J'ai besoin de connecté l'utilisateur: nom,prénom,e-mail etc.. en vue. Comment l'obtenir? Je peux obtenir juste @User.L'identité, mais il n'y pas de mon utilisateur de la classe de la propriété.
//in my view, i need here my ApplicationUser class
<div>
@User.Identity.Name
</div>
//ApplicationUser class
public class ApplicationUser : IdentityUser<int, CustomUserLogin, CustomUserRole,
CustomUserClaim>
{
public ApplicationUser()
{
this.CreatedDate = DateTime.Now;
}
public DateTime CreatedDate { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string TaxOffice { get; set; }
}
source d'informationauteur Yargicx
Vous devez vous connecter pour publier un commentaire.
S'il y a seulement des propriétés spécifiques que vous devez obtenir, vous pouvez les ajouter en tant que déclarations dans votre ApplicationUser classe comme l'exemple suivant:
Cette obtient filaire depuis le Démarrage.Auth classe:
Ensuite, vous pouvez accéder à la demande (dans une vue ou un contrôleur):
Aucune forme d'authentification des billets ici.
Si vous souhaitez que l'utilisateur complète les détails disponibles, vous pouvez toujours créer une extension de la méthode comme suit:
Et de l'appeler comme ceci:
Je recommande la mise en cache si vous êtes à l'appel de cette tout ce temps, cependant.
Il y a deux façons que vous pouvez atteindre cet objectif.
1) Créer votre propre
CustomPrincipal
en héritantIPrincipal
interface pour inclureName
Surname
etEmail
à l'aide de cette exemple ou cette.2) Obtenir des informations directement à partir de la base de données et passer comme un modèle pour la vue.
De la méthode va être une bonne option si vous voulez utiliser les mêmes données utilisateur dans plusieurs points de vue, mais la deuxième méthode est le moyen le plus simple pour atteindre cet objectif. laissez-moi savoir si vous avez besoin d'un code à l'aide de la seconde méthode.
Vous pouvez facilement utiliser la
@inject
fonction d'appel pour l'injection de deuxUserManager
etSignInManager
.À votre avis, ajoutez la ligne suivante:
Après l'injection, vous devriez être en mesure de travailler avec
UserManager
etSignInManager
méthodes. Par exemple:Espère que ce sera utile pour tout le monde 🙂
pour obtenir des informations sur l'utilisateur à partir du contrôleur de vous
devez utiliser
ou si vous souhaitez obtenir des informations sur l'utilisateur au sein de votre classe