W modelu formularzy uzywałem bieżącego zalogowanego użytkownika poprzez:
Page.CurrentUser
Jak uzyskać bieżącego użytkownika w klasie kontrolera w ASP.NET MVC?
c#
.net
asp.net-mvc
iis
forms-authentication
Serhat Ozgel
źródło
źródło
Znalazłem, że
User
działa, to znaczy,User.Identity.Name
lubUser.IsInRole("Administrator")
.źródło
Imports System.Web
dalej się kwalifikowaćHttpContext.Current.User.Identity.Name
, albo bezpośrednio zakwalifikować, korzystając z pełnej składni:System.Web.HttpContext.Current.User.Identity.Name
Spróbować
HttpContext.Current.User
.źródło
Możesz uzyskać nazwę użytkownika w ASP.NET MVC4 w następujący sposób:
źródło
'System.Web.HttpContextBase' does not contain a definition for 'Current' and no extension method 'Current' accepting a first argument of type 'System.Web.HttpContextBase' could be found
, chciałbym zaproponować dokonanie bezwzględnej takiego połączenia,System.Web.HttpContext.Current.User.Identity.Name
.Zdaję sobie sprawę, że to naprawdę stare, ale dopiero zaczynam pracę z ASP.NET MVC, więc pomyślałem, że wsadzę dwa centy:
Request.IsAuthenticated
informuje, czy użytkownik jest uwierzytelniony.Page.User.Identity
daje tożsamość zalogowanego użytkownika.źródło
Używam:
Nie jestem pewien, czy to zadziała w ASP.NET MVC, ale warto spróbować :)
źródło
zalogowanie się do nazwy użytkownika:
System.Web.HttpContext.Current.User.Identity.Name
źródło
Aby odwołać się do identyfikatora użytkownika utworzonego przy użyciu prostego uwierzytelniania wbudowanego w ASP.NET MVC 4 w kontrolerze do celów filtrowania (co jest pomocne, jeśli najpierw używasz bazy danych i Entity Framework 5 do generowania powiązań z kodem, a tabele mają taką strukturę) że używany jest klucz obcy do ID użytkownika), możesz użyć
po dodaniu instrukcji using
źródło
System.Security.Principal.WindowsIdentity.GetCurrent().Name
Działa tylko wMVC 5
. Jednak to podnosi nazwę domeny z nazwą użytkownika. tzn. domena \ nazwa użytkownikaMożemy użyć następującego kodu, aby uzyskać bieżącego zalogowanego użytkownika w ASP.Net MVC:
Również
źródło
Nazwa użytkownika z:
Ale jeśli potrzebujesz tylko identyfikatora, możesz użyć:
Możesz więc uzyskać bezpośrednio identyfikator użytkownika:
źródło
Ta strona może być tym, czego szukasz:
Korzystanie z Page.User.Identity.Name w MVC3
Po prostu potrzebujesz
User.Identity.Name
.źródło
Zastosowanie
System.Security.Principal.WindowsIdentity.GetCurrent().Name
.Spowoduje to, że bieżący zalogowany użytkownik systemu Windows.
źródło
Za to, co jest warte, w ASP.NET MVC 3 możesz po prostu użyć opcji Użytkownik, która zwraca użytkownika dla bieżącego żądania.
źródło
Jeśli znajdujesz się na stronie logowania, na przykład w zdarzeniu LoginUser_LoggedIn, Current.User.Identity.Name zwróci pustą wartość, więc musisz użyć swojej właściwościLoginControlName.UserName.
źródło
Możesz użyć następującego kodu:
źródło
źródło
źródło
Jeśli akurat pracujesz w usłudze Active Directory w intranecie, oto kilka wskazówek:
(Windows Server 2012)
Uruchamianie czegokolwiek, co komunikuje się z AD na serwerze WWW, wymaga wielu zmian i cierpliwości. Ponieważ podczas uruchamiania na serwerze sieciowym kontra lokalny IIS / IIS Express działa w tożsamości AppPool, więc musisz go skonfigurować, aby podszywał się pod każdego, kto wejdzie na stronę.
Jak uzyskać bieżącego zalogowanego użytkownika w aktywnym katalogu, gdy aplikacja ASP.NET MVC działa na serwerze sieciowym w sieci:
Musisz zawrzeć wszystkie wywołania związane z „kontekstem katalogu aktywnego” w następujący sposób, aby działało ono jako środowisko hostingowe, aby uzyskać informacje AD:
Musisz także
impersonate
ustawić wartość true w swoim pliku web.config:Musisz mieć uwierzytelnianie systemu Windows w pliku web.config:
źródło
W Asp.net Mvc Identity 2 możesz uzyskać bieżącą nazwę użytkownika poprzez:
źródło
W Menedżerze IIS w obszarze Uwierzytelnianie wyłącz: 1) Uwierzytelnianie anonimowe 2) Uwierzytelnianie formularzy
Następnie dodaj do kontrolera następujące elementy, aby obsłużyć testowanie i wdrożenie serwera:
źródło