Chcę pobrać bieżącą nazwę zalogowanego użytkownika dla zapytania bazy danych w C# i próbować znaleźć wersję C# polecenia ASP "Polecenie" User.Identity.Name. Kiedy go wyszukuję, znajduję tylko osoby, które pobierają nazwę użytkownika Windows za pomocą Environment.Username i podobnych rozwiązań — a to nie jest to, czego potrzebuję.

Mówię więc o kontach utworzonych z okna dialogowego ASP Configuration w VS lub o automatycznie generowanych funkcjach rejestru. Mogę się zarejestrować/zalogować/wylogować i tak dalej, więc zgaduję, że jest jakaś sesja, która przechowuje potrzebne informacje. Po prostu nie wiem, gdzie mogę to znaleźć.

Mam nadzieję, że nie jestem aż tak zagmatwany :) Czy ktoś wie, jak pobrać informacje o sesji z modelu C#?

3
Thomas 19 październik 2012, 17:32

2 odpowiedzi

Najlepsza odpowiedź

Możesz uzyskać nazwę bieżącego użytkownika w MVC w taki sam sposób, jak w klasycznej ASP, za pomocą User.Identity.Name. Cała przestrzeń nazw to System.Web.HttpContext.Current.User.Identity.Name.

Nie widząc Twojego kodu, nie jestem pewien, ale wyobrażam sobie, że nie uwzględniasz System.Web, a nawet jeśli tak, może być konieczne określenie HttpContext.Current.User.Identity.Name.

2
Mansfield 19 październik 2012, 21:21

Do modelu można przekazać właściwość kontrolera „Użytkownik”. coś takiego:

public ActionResult Index()
{
    IndexModel model = new IndexModel(this.User);
}
1
Quadrat137 19 październik 2012, 17:40