Laden...

problem mit WindowsIdentity

Erstellt von simson_fan vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.325 Views
S
simson_fan Themenstarter:in
4 Beiträge seit 2007
vor 16 Jahren
problem mit WindowsIdentity

hallo!

ich habe ein Problem mit folgendem Befehl: System.Security.Principal.WindowsIdentity.GetCurrent().Name

Laut meinen Kentnissen und diversen Posts in Foren sollte hier die Domain / User ausgegeben werden, der gerade angemeldet ist.
Bei mir wird folgendes ausgegeben:

NT-AUTORITÄT\NETZWERKDIENST

Meine Web.Config sieht so aus:

<authentication mode="Windows"/>
<authorization>
<allow users="?"/>
</authorization>
...

Ich freue mich über eure Hilfen.
Viele Grüße
Sebastian

V
327 Beiträge seit 2005
vor 16 Jahren

hi,

bin zwar nicht so erfahren in asp, aber ich denke, dass er dir nicht den nutzer anzeigt sondern den dienstprozess...

guck dir mal das an...

http://www.microsoft.com/germany/msdn/solve/knowhow/howto/cliententwicklung/WiekannichvoruebergehenddieIdentitaeteinesanderenBenutzersannehmen.mspx

oder schreib mal noch ein bißchen mehr was du machen willst.

MFG Veasel

3.728 Beiträge seit 2005
vor 16 Jahren
Vordefinierte Konten

NT-AUTORITÄT\NETZWERKDIENST ist ein vordefiniertes Konto. Unter diesem Konto wird Deine Web-Anwendung ausgeführt. Mit Principal.WindowsIdentity.GetCurrent() bekommst Du nicht die Identität des Clientbenutzers zurück, der Deine Webanwendung aufgerufen hat, sondern das Windows-Konto unter dem Deine Webanwendung ausgeführt wird.

Den Client-Benutzer bekommst Du über die System.Web.UI.Page.User-Eigenschaft (edit: Nur wen Impersonierung aktiviert ist!).

Wenn Du möchtest, dass Deine Webanwendung unter einem anderen Benutzerkonto als NT-AUTORITÄT\NETZWERKDIENST ausgeführt wird, musst Du das im Anwendungspool festlegen, dem Deine Anwendung zugeordnet ist (Ich gehe davon aus, dass Du IIS 6 verwendest).

S
simson_fan Themenstarter:in
4 Beiträge seit 2007
vor 16 Jahren

danke für die schnelle antwort 👍
es geht um folgendes: wenn der benutzer die Seite besucht, wird sein username, mit dem er in Windows angemeldet ist, ausgelesen werden. der username wird gegen die DB geprüft.

also ich will einfach nur den benutzername auslesen, mit dem der Windows-user angemeldet ist.

S
simson_fan Themenstarter:in
4 Beiträge seit 2007
vor 16 Jahren

ich habe in dem Pool auf Lokaler Diensts bzw. Lokales System gestellt und danach jeweils den IIS neu gestartet mit IISReses (cmd).
Danach habe ich mit folgendem Code versucht, den Username auszulesen:
IPrincipal myPrincipal = this.User;
Response.Write(Server.HtmlEncode(myPrincipal.Identity.Name));

Leider bekomme ich mit dem oben beschriebenen Weg nicht den username raus, mit dem der Benutzer bei Windows angemeldet ist.

K
95 Beiträge seit 2007
vor 16 Jahren

Was kommt denn zurück, wenn du das benutzt?

Vielleicht hilft dir der Thread weiter. Klingt zumindest nach dem gleichen Problem.

Klick Mich

S
simson_fan Themenstarter:in
4 Beiträge seit 2007
vor 16 Jahren

Original von kInGpInGoLd


>

👍 👍 👍 👍 dake für den Link. Da steht die Lösung