Impersonation and such ;-)

10/01/2008 - 18:04 von Gerd | Report spam
Hallo allerseits,

in meinem letzten Post ist das wohl untergegangen, aber ich habe noch eine
Frage zum Verstàndnis:

Der ASP.NET-Code làuft normalerweise unter dem bei der Installation
angelkegten lokalen Account ASPNET.
In der machine.config in dem Abschnitt processModel könnte man einen anderen
Account setzen.

Bei der Konfiguration der web.config (in dem Verzeichnis der aspx-Seite)
über die GUI kann ich
unter dem Reiter "Anwendung" in dem Bereich "Identitàtseinstellungen" ein
"Lokaler
Indentitàtswechsel" einstellen.
Wenn ich diesen Haken setze und einen Benutzernamen/Passwort angebe, wird
mein Code mit diesen Accountdaten statt des ASPNET-Kontos ausgeführt. Wenn
ich
den Haken setze, aber keinen Benutzernamen angebe, dann wird die Identitàt
dessen angenommen, der die Seite aufruft.

Habe ich das so richtig verstanden?

Danke und Gruß
Gerd
 

Lesen sie die antworten

#1 Lutz Elßner
10/01/2008 - 19:49 | Warnen spam

Der ASP.NET-Code làuft normalerweise unter dem bei der Installation
angelkegten lokalen Account ASPNET.



Beim Windows 2003 IIS 6.0 ist der User ASPNET überflüssig. Wenn ich mich
nicht irre, wird der dort nur gebraucht wenn der ganze IIS im IIS 5.0
Isolationsmodus làuft.
Normalerweise kommt die Identitàt vom Application Pool.

In der machine.config in dem Abschnitt processModel könnte man einen


anderen
Account setzen.



Ich weiß nicht was der beim IIS 6.0 bewirken soll, wenn kein
Isolationsmodus.



Bei der Konfiguration der web.config (in dem Verzeichnis der aspx-Seite)
über die GUI kann ich
unter dem Reiter "Anwendung" in dem Bereich "Identitàtseinstellungen" ein
"Lokaler
Indentitàtswechsel" einstellen.
Wenn ich diesen Haken setze und einen Benutzernamen/Passwort angebe, wird
mein Code mit diesen Accountdaten statt des ASPNET-Kontos ausgeführt. Wenn
ich
den Haken setze, aber keinen Benutzernamen angebe, dann wird die Identitàt
dessen angenommen, der die Seite aufruft.



Das ist richtig wenn die anonyme Anmeldung deaktiviert ist. Wenn anonym
zugelassen ist, nimmt er zuerst den IUSR und nicht den authentifizierten
Benutzer.

Der ASPNET bzw. ApplicationPoolIdentity wird an vielen Stellen trotz
Impersonate noch gebraucht.
- für die Dateien im Webordner
- für Application-Code, der keinem angemeldeten User zugeordnet werden kann
(manche, nicht alle Methoden in global.asax)
- eine User Instanz bei SQLEXPRESS erzeugen und benutzen geht mit
Impersonation auch nicht.
- u.s.w.

Forms Authentication hast du nicht, da ist wieder alles anders, weil die
User keine Windows Konten sind.

Lutz

Ähnliche fragen