HttpContext.Current.User.Identity.Name gibt nach LogOn null zurück. Ich verwende IIS7.0 Framework 4.0. und vs 2010. Ich habe ein anderes Projekt, das targetFramework ist 3.5. es funktioniert gut. Aber targetFramework meines neuen Projekts ist 4.0. Wenn Sie HttpContext.Current.User.Identity.Name aufrufen, wird null zurückgegeben.ASP.NET MVC HttpContext IdentityName nach LogOn abrufen
2
A
Antwort
7
Sie sollten nach der Anmeldung eine HTTP-Umleitung ausführen, bevor Sie diese Eigenschaft verwenden können. Nach der Weiterleitung können Sie es bei nachfolgenden Anfragen verwenden. Hier ist das übliche Muster:
public ActionResult LogOn()
{
FormsAuthentication.SetAuthCookie("someuser", false);
return RedirectToAction("foo");
}
[Authorize]
public ActionResult Foo()
{
// use the logged in user here without problems
string userName = User.Identity.Name;
return View();
}
0
Eine andere Lösung ist die Reflexion zu verwenden, um das User.Identity.Name Eigentum auf Ihrer Anmeldeseite zu setzen. Dann wird die Eigenschaft festgelegt, ohne zuerst auf eine andere Seite umleiten zu müssen, was eine Art Hack ist.
Verwandte Themen
- 1. ASP.NET MVC: HTTPContext und Abhängigkeitsinjektion
- 2. Anwendungspfad ohne Verwendung von httpcontext abrufen. (asp.net)
- 3. ASP.NET MVC & Windsor.Castle: Arbeiten mit HttpContext-abhängigen Diensten
- 4. HttpContext auf Instanzen von Controllern sind Null in ASP.net MVC
- 5. ASP.NET MVC-Wert kann nicht null sein Parametername: httpContext
- 6. Zugriff auf HttpContext außerhalb von Controllern in ASP.NET MVC?
- 7. Wie spotze ich den HttpContext in ASP.NET MVC mit Moq?
- 8. ASP.net herunterladen/exportieren ohne HttpContext
- 9. Httpcontext und Controller in MVC
- 10. 404 auf der Suche nach ~/Account/LogOn
- 11. benutzerdefinierte Klasse Httpcontext
- 12. ASP.Net MVC 3 Abrufen von Checkbox-Listenwerten
- 13. ASP.NET MVC - ViewContext von Hilfsmethode abrufen
- 14. Abrufen der RAW-Anforderung in ASP.NET MVC
- 15. ASP.NET MVC - Abrufen des Anmeldestatus eines Benutzers
- 16. Checkbox-Werte beim Postback abrufen ASP.NET MVC
- 17. Asp.net Mvc kippe Anforderungsweg nach #
- 18. MVC 4 Mocking HttpContext - wie Mocking DisplayModeProvider
- 19. Httpcontext ist null für MVC-Controller
- 20. Wie können Sie den "echten" HttpContext innerhalb einer ASP.NET MVC-Anwendung erhalten?
- 21. Asp.net MVC web.config Fehler
- 22. TinyMCE Rechtschreibprüfung in ASP.NET MVC
- 23. Zugriff auf den aktuellen HttpContext in ASP.NET Core
- 24. Zugriff auf ASP.Net-Web-API oder Autorisierung nach dem Festlegen von Thread und HttpContext Principal
- 25. ASP.NET MVC HttpContext.Session Objekt
- 26. Asp.Net MVC FormsAuthenticationTicket
- 27. ASP.Net MVC Benutzerdefinierte Authentifizierung
- 28. Injection HttpContext in Ninject 2
- 29. Best Practices für die Httpcontext und prüfbar Controller in ASP.Net MVC
- 30. ASP.NET MVC - Html.BeginForm und SSL
ja ich verstehe dich. Ich habe es getestet/und es hat funktioniert. Aber warum kann ich es nicht nach FormsAuthentication.SetAuthCookie aufrufen ("someuser", false); – AEMLoviji
Da 'User.Identity.Name' das Authentifizierungs-Cookie verwendet, das in der ** Anfrage ** vorhanden ist, um diese Eigenschaft aufzufüllen, und nach dem Aufruf von' FormsAuthentication.SetAuthCookie' kein Cookie in der Anfrage vorhanden ist, wird dies in der Antwort so festgelegt dass der Client-Browser es bei nachfolgenden Aufrufen in der Anfrage sendet. Deshalb sollten Sie nach der Anmeldung immer umleiten. –
gute Antwort und gute Erklärung von Darin Dimitrow. Danke – AEMLoviji