2012-12-21 30 views
14

Jak mogę uzyskać identyfikator użytkownika zalogowanego użytkownika? Używam standardowego generowanego konta AccountModel. Mogę uzyskać nazwę użytkownika za pomocą:Zalogować się identyfikator użytkownika

User.Identity.Name 

, ale nie widzę pola UserId. Chcę użyć UserId jako klucz obcy dla innej tabeli.

+2

Proste członkostwo? Członkostwo ASP.NET? –

+0

Proste Członkostwo – naveed

Odpowiedz

14
+0

Hmm, ja dostaję: Błąd 'System.Web.Security.MembershipUser' nie zawierają definicji 'getUser' – naveed

+0

Dzięki, typo, to było przypuszczać, aby być 'Membership'. –

+0

OK, zadziałało. Dzięki! – naveed

9

Najlepszym sposobem, aby to zrobić jest użycie klasy WebSecurty

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

i nie zapomnij dodać [InitializeSimpleMembership] na górze kontrolera :)

+0

To też zadziałało, dziękuję. – naveed

+0

Tak długo, jak Twój dostawca spełnia wymagania, aby używać 'int' jako Unikalnego identyfikatora. –

+0

dzięki. to było pomocne :) –

19

Spróbuj tego:

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

To jak jej dokonać w częściowym widokiem na obecnym MVC (MVC5/EF6/VS2013) szablonów.

Popraw mnie, jeśli się mylę, ponieważ często widziałem odpowiedzi Aviatrix, ale co się stanie, jeśli więcej niż jeden użytkownik ma taką samą nazwę w bazie danych?

+0

To też działa dla mnie! +1 – Bojangles

+0

To rozwiązanie nie jest możliwe, jeśli użytkownik jest już zalogowany i próbuje zmienić bieżące hasło. – usefulBee

Powiązane problemy