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.
Je pense que vous recherchez ProviderUserKey - Obtient l'identifiant utilisateur de la source de données d'appartenance pour l'utilisateur.
object id = Membership.GetUser().ProviderUserKey
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?
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 :)
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.