Ich habe eine REST-API bereits eingerichtet und läuft. Jetzt versuche ich einen Log-Service zu machen.Get Windows angemeldet Benutzer REST Web Api
Die Idee besteht darin, eine Datenbank-Tabelle alle Operationen anzumelden, die vom Benutzer in der Client-App vorgenommen wurden.
Da es für den internen Gebrauch (nur im Intranet) verwendet wird, verwende ich Windows-Authentifizierung (<authentication mode="Windows" />
).
Der Protokolldienst arbeitet bereits mit einem Problem. Ich kann den angemeldeten Benutzer nicht erreichen.
Wenn ich die API und die Client-App auf meinem lokalen Computer ausführen, kann ich meinen Benutzer abrufen. Aber wenn ich publiziere, kann ich nicht.
Was ich schon versucht:
string userName = WindowsIdentity.GetCurrent().Name;
string userName = HttpContext.Current.User.Identity.Name;
string userName = HttpContext.Current.Request.LogonUserIdentity.Name;
string userName = Environment.UserName;
ich alle Arten von Benutzernamen (IUSR
, IIS APPPOOL\MyApi
, MyApi
und auch leer), aber nicht der Benutzer angemeldet Fenster.
Ich habe Windows-Authentifizierung auf IIS aktivieren.
Kann mir jemand sagen, ob das möglich ist? Und wenn ja, wie?
Haben Sie sichergestellt, dass die Standardauthentifizierung deaktiviert ist? Es reicht nicht aus, die Windows-Authentifizierung zu aktivieren, Sie müssen auch die Standardauthentifizierung deaktivieren. Dann sollten die auf HttpContext basierenden funktionieren. Die anderen dienen zum Abrufen des Benutzernamens des Prozesses auf dem Server. – Kevin
Ja, sowohl die grundlegende als auch die anonyme Authentifizierung sind deaktiviert. – lpfx