In einem Formularmodell habe ich den aktuell angemeldeten Benutzer abgerufen durch:
Page.CurrentUser
Wie erhalte ich den aktuellen Benutzer in einer Controller-Klasse in ASP.NET MVC?
c#
.net
asp.net-mvc
iis
forms-authentication
Serhat Ozgel
quelle
quelle
Ich fand, dass das
User
funktioniert, das heißt,User.Identity.Name
oderUser.IsInRole("Administrator")
.quelle
Imports System.Web
und weiter qualifizierenHttpContext.Current.User.Identity.Name
oder sich direkt mit der vollständigen Syntax qualifizieren:System.Web.HttpContext.Current.User.Identity.Name
Versuchen Sie es
HttpContext.Current.User
.quelle
Sie können den Namen des Benutzers in ASP.NET MVC4 folgendermaßen abrufen:
quelle
'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
, würde ich vorschlagen, einen absoluten Anruf wie diesen zu tätigenSystem.Web.HttpContext.Current.User.Identity.Name
.Mir ist klar, dass dies sehr alt ist, aber ich fange gerade erst mit ASP.NET MVC an, also dachte ich, ich würde meine zwei Cent reinstecken:
Request.IsAuthenticated
teilt Ihnen mit, ob der Benutzer authentifiziert ist.Page.User.Identity
gibt Ihnen die Identität des angemeldeten Benutzers.quelle
Ich benutze:
Ich bin nicht sicher, ob dies in ASP.NET MVC funktioniert, aber es ist einen Versuch wert :)
quelle
Anmelden Benutzername:
System.Web.HttpContext.Current.User.Identity.Name
quelle
Um auf eine Benutzer-ID zu verweisen, die mit einer einfachen Authentifizierung erstellt wurde, die in ASP.NET MVC 4 in einem Controller zu Filterzwecken integriert ist (dies ist hilfreich, wenn Sie zuerst die Datenbank und Entity Framework 5 zum Generieren von Code-First-Bindungen verwenden und Ihre Tabellen so strukturiert sind dass ein Fremdschlüssel für die Benutzer-ID verwendet wird), können Sie verwenden
Sobald Sie eine using-Anweisung hinzufügen
quelle
System.Security.Principal.WindowsIdentity.GetCurrent().Name
inMVC 5
. Dadurch wird jedoch der Domainname mit dem Benutzernamen aufgerufen. dh Domain \ BenutzernameWir können folgenden Code verwenden, um den aktuell angemeldeten Benutzer in ASP.Net MVC abzurufen:
Ebenfalls
quelle
Benutzername mit:
Wenn Sie jedoch nur die ID benötigen, können Sie Folgendes verwenden:
So können Sie direkt die Benutzer-ID erhalten:
quelle
Diese Seite könnte genau das sein, wonach Sie suchen:
Verwenden von Page.User.Identity.Name in MVC3
Du brauchst nur
User.Identity.Name
.quelle
Verwenden
System.Security.Principal.WindowsIdentity.GetCurrent().Name
.Dadurch wird der aktuell angemeldete Windows-Benutzer abgerufen.
quelle
Für das, was es wert ist, können Sie in ASP.NET MVC 3 einfach Benutzer verwenden, der den Benutzer für die aktuelle Anforderung zurückgibt.
quelle
Wenn Sie sich auf Ihrer Anmeldeseite befinden, beispielsweise im Ereignis LoginUser_LoggedIn, gibt Current.User.Identity.Name einen leeren Wert zurück, sodass Sie Ihre Eigenschaft LoginControlName.UserName verwenden müssen.
quelle
Sie können folgenden Code verwenden:
quelle
quelle
quelle
Wenn Sie gerade in Active Directory in einem Intranet arbeiten, finden Sie hier einige Tipps:
(Windows Server 2012)
Das Ausführen von Inhalten, die mit AD auf einem Webserver kommunizieren, erfordert eine Reihe von Änderungen und Geduld. Da die Ausführung auf einem Webserver im Vergleich zu lokalem IIS / IIS Express in der AppPool-Identität ausgeführt wird, müssen Sie sie so einrichten, dass sie sich als derjenige ausgibt, der die Site besucht.
So erhalten Sie den aktuell angemeldeten Benutzer in einem Active Directory, wenn Ihre ASP.NET MVC-Anwendung auf einem Webserver im Netzwerk ausgeführt wird:
Sie müssen alle Aufrufe, die mit 'Active Directory-Kontext' zu tun haben, im Folgenden einschließen, damit sie als Hosting-Umgebung fungieren, um die AD-Informationen abzurufen:
Sie müssen außerdem
impersonate
in Ihrer web.config auf true gesetzt haben:Sie müssen die Windows-Authentifizierung in web.config aktiviert haben:
quelle
In Asp.net Mvc Identity 2 können Sie den aktuellen Benutzernamen abrufen, indem Sie:
quelle
Deaktivieren Sie im IIS-Manager unter Authentifizierung: 1) Anonyme Authentifizierung 2) Formularauthentifizierung
Fügen Sie dann Ihrem Controller Folgendes hinzu, um Tests im Vergleich zur Serverbereitstellung durchzuführen:
quelle