2012-07-03 12 views
6

"Haben Sie jemals getan. NET-Programmierung? Ja? Gut, hier ist eine massive kaputte Programm, reparieren Sie es". Das ist die Situation, in der ich bin, es tut mir leid, wenn es eine einfache Frage ist.C# asp.net bekommen Benutzername

Das Programm, an dem ich gerade arbeite, zieht eine Datei von einem Webserver. Es wird erwartet, dass der Benutzer bereits am Webserver angemeldet ist. Ich muss den Benutzernamen der aktuellen Person ziehen, die am Server angemeldet ist (oder einfach sicherstellen, dass jemand tatsächlich am Server angemeldet ist).

Ich habe Folgendes versucht und es gibt eine leere Zeichenfolge zurück.

user = HttpContext.Current.User.Identity.Name; 
+3

Haben Sie die Windows-Authentifizierung für die Webanwendung in IIS aktiviert? –

+0

Was gibt Environment.UserName zurück? –

Antwort

7

Stellen Sie sicher, dass Sie die Windows-Authentifizierung in der Web.Config-Datei festlegen. Folgendes überprüfen, auch vor den Benutzernamen Zugriff auf

HttpContext.Current.User.Identity.IsAuthenticated 

Set Web.Config wie folgt

<authentication mode="Windows"></authentication> 
+0

Authentifizierung ist derzeit auf Formulare festgelegt. Gibt es viel Gefahr, das zu Windows zu ändern? babno

+1

+1, aber Sie müssen nicht zu Windows wechseln. Behalten Sie den Authentifizierungsmodus bei, für den die Site entworfen wurde. (Der Benutzername wird auch mit einem anderen Authentifizierungsmodus gefüllt, wenn er eingeloggt ist.) –

+1

Ja. Behalten Sie das Design so wie es ist. Versuchen Sie, die Formularauthentifizierung mithilfe des folgenden Links http://stackoverflow.com/questions/8810496/forms-authentication-understanding-context-user-identity zu verstehen –

0

Die Eigenschaften des User Objekts werden in der Regel durch die Anwendung des Authentifizierungsschema bevölkert (Forms, Windows-oder Benutzerdefiniert) Sie müssen also sicherstellen, dass eine dieser Funktionen vorhanden ist, bevor Sie mit dem Zugriff auf die User beginnen. Weitere Informationen finden Sie in der docs at MSDN.

1

Zuerst einchecken Web.config Datei für <authentication> Tag. Wenn Sie es nicht finden, verwendet Ihre Anwendung möglicherweise keinen Standardauthentifizierungsmechanismus. Wenn das der Fall ist, schauen Sie in den login.aspx oder welchen Code auch immer, der die Authentifizierung durchführt. Dort erhalten Sie eingeloggte Benutzerdaten.

Ich würde Ihnen nicht empfehlen, etwas in der web.config-Datei zu ändern, ohne etwas fest im Griff zu haben, was in der Anwendung geht.

Verwandte Themen