Laden...

beim gehosteten Projekt den Windows Anmeldenamen ermitteln

Letzter Beitrag vor einem Jahr 5 Posts 790 Views
beim gehosteten Projekt den Windows Anmeldenamen ermitteln

Hallo zusammen,

bin noch C# Neuling und taste mich an mein erstes Projekt.

Ich möchte es gerne ohne Useranmeldung erstellen, jedoch Daten aus dem AD holen.

Lokal beim Debuggen ermittle ich den Windows Anmeldename mit

System.Security.Principal.WindowsIdentity.GetCurrent().Name.Split('\\')[1];   // (gesplittet von der Domaine)

Das weitere Holen der Userdaten aus dem AD klappt dann prima.

Leidet klappt diese Variante nicht wenn ich das Projekt über den IIS laufen habe.

Gibt es eine Möglichkeit dem Projekt auf dem Server den Anmeldenamen vom Clienten zu vermitteln? Meine Suche im Netz hat mir noch nicht weiter geholfen.

Ich hoffe ich habe es verständlich ausgedrückt.

Danke für Eure Hilfe

Gruß

Jan-Dirk

Wie der Name WindowsIdentity.GetCurrent() schon in gewisser Weise aussagt, repräsentiert das die Identität des aktuellen Users des Prozesses. Das kann so natürlich bei IIS nicht funktionieren, weil hier kein Prozess des Benutzers involviert ist, sondern nur der Prozess der Server-Applikation.

Was Du suchst ist im Endeffekt unter Understanding identities in IIS beschrieben; was man eigentlich per Google Suche gut findet. Vielleicht hast das übersehen.

Du willst die Windows Authentication nutzen; aber achtung: diese funktioniert nur in sich geschlossenen Unternehmensnetzwerke, nicht über das Internet! Auch ist diese per default nicht aktiv sondern muss aktiviert, bzw. manchmal auch nachträglich installiert werden (auf dem Windows Server über das Paket-Management).

In Deiner ASP.NET Core Anwendung bekommst Du die Identität des Benutzers dann über das Request.User-Objekt. Willst Du mit der Identität des Applikationsnutzers weiter arbeiten (zB gegen ein Laufwerk, gegen eine Share, gegen eine andere interne Anwendung), dann brauchst Du Windows-Impersonation. Die Anwendung läuft nämlich prinzipiell anonym und muss dann sich selbst als User weiter identifizieren; pro Request und nicht global.

Bezüglich Auswahl des richtigen Identity Providers (Windows Identity ist nicht unbedingt für alles empfohlen, eher dann Microsoft Identity Platform, wie die neue Umgebung heisst) hilft Microsoft identity platform best practices and recommendations

Sorry dann war ich völlig verpeilt... Sorry für meinen zweiten Post dazu!

Aber ich bin leider noch nicht konkret weiter gekommen damit....

Habe die Anmeldemaske beim IIS hinbekommen, aber nicht den Anmeldenamen ermitteln können...

Hat jemand dazu noch noch einen guten Tipp, bin halt noch sehr neu auf diesem Gebiet

DANKE!

Muss einfach nur meinen Beitrag lesen

In Deiner ASP.NET Core Anwendung bekommst Du die Identität des Benutzers dann über das Request.User-Objekt.

hast du dazu evtl einen Schnipsel ? 😃 
Sorry