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"
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.
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).
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.
Probieren Sie die Klasse System.Net.Dns
aus. Sie enthält viele hilfreiche Methoden wie GetHostEntry, d. h.:
Laut Warlocks Antwort: Wie bekomme ich die Basis der Website?
>Elegant:)
string baseUrl = Request.Url.GetLeftPart (UriPartial.Authority);