Mit Page.User.Identity.Name in MVC3
-
26-09-2019 - |
Frage
In MVC2 Ich habe gebrauchte Page.User.Identity.Name
mit dem <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
Wie kann ich das gleiche in MVC3 verwenden?
Lösung
Sie können immer so etwas wie:
@Html.ViewContext.HttpContext.User.Identity.Name
aber nicht.
Normalerweise eine Ansicht sollte nicht versuchen, solche Informationen zu holen. Es ist dort zu Anzeige stehenden Informationen durch die Steuerung übergeben wird. Es sollte zu einer Modellklasse stark typisiert werden, die durch eine Controller-Aktion übergeben wird.
So in der Controller-Aktion macht diese Ansicht:
[Authorize]
public ActionResult Index()
{
var model = new MyViewModel
{
Username = User.Identity.Name
}
return View(model);
}
Jetzt in der Ansicht fühlt sich frei, diese Informationen zu nutzen:
@Model.Username
Andere Tipps
MVC 2
<%: this.Page.User.Identity.Name %>
MVC 3
@this.User.Identity.Name
Ich hatte das gleiche Problem. Ich benutzen dieses Tutorial zur Lösung dieses Ausgabe.
Kurz gesagt, in Ihrer Meinung nach diesem Code setzen:
@Context.User.Identity.Name
So stellen Sie sicher, dass das Projekt mit Fenstern zum Authentifizieren eingestellt ist.