2012-12-21 13 views
14

Come posso ottenere il UserId dell'utente connesso? Sto usando il modello standard generato da AccountModel. Posso ottenere il nome utente utilizzando:Identificativo utente registrato

User.Identity.Name 

ma non vedo il campo UserId. Voglio utilizzare l'ID utente come chiave esterna per un'altra tabella.

+2

Abbonamento semplice? Appartenenza ASP.NET? –

+0

semplice appartenenza – naveed

risposta

14
+0

Hmm, sto ottenendo: errore 'System.Web.Security.MembershipUser' non contiene una definizione per 'getUser' – naveed

+0

Grazie, errore di battitura lì, è stato supponiamo di essere 'Membership'. –

+0

Ok, questo ha funzionato. Grazie! – naveed

9

Il modo migliore per farlo è quello di utilizzare la classe WebSecurty

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

e non dimenticare di aggiungere [InitializeSimpleMembership] nella parte superiore del controller :)

+0

Anche questo ha funzionato, grazie. – naveed

+0

Fintanto che il tuo provider segue i requisiti per usare un 'int' come identificatore univoco. –

+0

grazie. è stato utile :) –

19

Prova questa:

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

Ecco come il suo fare le viste parziali per i MVC (MVC5/EF6/VS2013) i modelli.

Correggimi se ho torto, perché ho visto molto le risposte di Aviatrix, ma cosa succede se più di un utente ha lo stesso nome nel database?

+0

Questo funziona anche per me! +1 – Bojangles

+0

Questa soluzione non è possibile se l'utente ha già effettuato l'accesso e sta tentando di modificare la password corrente. – usefulBee

Problemi correlati