So erhalten Sie den Server-Domänennamen

8

Kann mir jemand sagen, wie man den Server-Domain-Namen in asp.net bekommt? ( Environment.UserDomainName gibt die Zeichenfolge "IIS APPPOOL" zurück)

Danke für Wiederholungen, aber meistens geht es um den DNS-Namen des Servers, was ich brauche, ist der Domainname. Zum Beispiel, wenn ich mich über die Windows-Authentifizierung anmelde, tippe ich Domäne \ Benutzer und ich brauche diese "Domäne"

    
Sly 21.10.2009, 14:23
quelle

8 Antworten

3

Es sieht so aus, als ob Sie versuchen, den Domain-Namen des Benutzers zu finden. Da Sie nach dem Environment.UserDomainName fragen. Da Ihre Website wahrscheinlich mit "Anonymen Zugriff zulassen" ausgeführt wird, gibt der Benutzer seine Domäneninformationen nicht an den Server weiter, und IIS gibt Ihnen die Kontoinformationen, die vorhanden sind, nämlich den App-Pool-Account.

    
Tom B 21.10.2009, 19:21
quelle
9

Sie müssen es aus dem Anfrageobjekt extrahieren:

%Vor%     
Tinister 21.10.2009 14:34
quelle
4

Wenn hier jemand nach dem Domain-Namen des Servers sucht, hier ist ein Hack, den ich seit den .Net Anfängen verwende:

%Vor%

Sie können tatsächlich ein bisschen Informationen von dort holen. Update: Funktioniert jetzt mit 64 Bit.

Danke Duncan für die 64-Bit-Version.

    
TombMedia 14.12.2013 20:49
quelle
4

Ein bisschen spät. Aber die fehlende und beste Antwort, die ich gefunden habe, nachdem ich genau das gleiche Problem hatte:

%Vor%

Wie auf der Website msdn angegeben :

  

Dieser Rückgabewert ist unabhängig von den Anmeldeinformationen der Domäne   Die Anwendung wird ausgeführt. Diese Methode ruft den Computer ab   Domain wird unabhängig von den Anmeldeinformationen der vertrauenswürdigen Account-Domäne ausgeführt   unter.

Getestet auf meinem persönlichen PC (keine AD-Domäne) und bei der Arbeit (mit AD-Domäne) unter IIS (anonymer Zugriff).

    
Remco 13.12.2015 21:08
quelle
2

Es gibt ein spezifisches Problem für Ihre Frage. Möglicherweise gibt es mehrere Domainnamen für eine bestimmte IP-Adresse.

Wie Tinister sagte, können Sie

verwenden %Vor%

Aber das sagt Ihnen nur, was der Benutzer in der Adressleiste des Browsers geschrieben hat. Wenn der Benutzer der Host-Datei für Ihre Site einen Eintrag hinzugefügt hat und diesen Host-Namen verwendet, wird dies angezeigt. (Ich habe keine Ahnung, warum sie das tun würden).

Wenn Sie mehr als einen Domänennamen für Ihre Website haben, können Sie anhand dieser Informationen herausfinden, welche der Domänennamen der Benutzer angefordert hat.

    
Pete 21.10.2009 14:41
quelle
1

Probieren Sie die Klasse System.Net.Dns aus. Sie enthält viele hilfreiche Methoden wie GetHostEntry, d. h.:

%Vor%     
John Leidegren 21.10.2009 14:25
quelle
1

Laut Warlocks Antwort: Wie bekomme ich die Basis der Website?

>

Elegant:)

string baseUrl = Request.Url.GetLeftPart (UriPartial.Authority);

    
Martin Sansone - MiOEE 15.09.2013 00:24
quelle
0

in der web.config müssen Sie den Code hinzufügen

%Vor%     
lokanath das 25.03.2015 08:13
quelle

Tags und Links