2016-04-02 6 views
2

Ich benutze ASP.NET MVC 5 und Identity für Authentication, Mein Problem mit belowe Code:Mitglied ist Null in der Steuerung aber in Aussicht hat Wert

User.Identity.IsAuthenticated 

User ist Null, aber ich habe oben Code in View Wie belowe und seine funktioniert gut und Benutzer hat Wert.

@if (User.Identity.IsAuthenticated) 
      {...} 

was ist los?

dieses Ich Suche auf Google zu tun und einen Weg mit

protected override void Initialize(System.Web.Routing.RequestContext requestContext) 
    { 
     base.Initialize(requestContext); 
    } 
+2

Wo verwenden Sie diesen Code? Wenn Sie versuchen, es im Konstruktor Ihres Controllers zu tun, wird es null sein, weil das zu früh ist. –

+0

Ich habe 'Initialize' in BaseController und andere Controller Vererbung verwendet, die –

+0

Innerhalb der' Initialize' Methode sollten Sie in der Lage sein, auf den HttpContext zuzugreifen. –

Antwort

4

Ich vermute, dass Sie versuchen, innerhalb des Konstruktors einer Steuerung zum Aufrufen dieser Methode finden. Dieser Konstruktor wird zu früh in der HTTP-Anforderungsausführungspipeline aufgerufen und der HttpContext ist dort nicht verfügbar. Sie können den HttpContext innerhalb der Initialize-Methode aufrufen: