web-dev-qa-db-fra.com

Se connecter l'identifiant de l'utilisateur

Comment puis-je obtenir l'ID utilisateur de l'utilisateur connecté? J'utilise le AccountModel généré par le système standard. Je peux obtenir le nom d'utilisateur en utilisant:

User.Identity.Name

mais je ne vois pas le champ UserId. Je veux utiliser le UserId comme clé étrangère pour une autre table.

18
naveed
15
Erik Philips

Essaye ça:

using Microsoft.AspNet.Identity;
User.Identity.GetUserId();

C'est ainsi que cela se fait dans les vues partielles des modèles MVC actuels (MVC5/EF6/VS2013).

Corrigez-moi si je me trompe, car j'ai souvent vu les réponses d'Aviatrix, mais que se passe-t-il si plusieurs utilisateurs ont le même nom dans la base de données?

25
prasanthv

La meilleure façon de le faire est d'utiliser la classe WebSecurty

var memberId = WebSecurity.GetUserId(User.Identity.Name);

et n'oubliez pas d'ajouter [InitializeSimpleMembership] au-dessus de votre manette :)

10
Aviatrix

Ils sont déjà une très bonne réponse, mais ce que j'ai compris de votre question, c'est que vous voulez récupérer les données de la base de données en utilisant id.so voici ce que vous pouvez faire.

public List<ForeignkeyTable> RV()
{
 var email = User.Identity.Name;

Usertable m = db.Uusertables.Where(x => x.user_Email == email).SingleOrDefault();

 var id = m.user_Id;

var p = db.ForeignkeyTable.Where(x => x.user_fk_id == id).ToList();


return p;

}

De cette façon, vous pouvez renvoyer toutes les données de la base de données de cet identifiant dans une clé étrangère.

0
Learner