我使用ASP.NET MVC 5Identity表示Authentication,我的问题是使用belowe代码:

User.Identity.IsAuthenticated


User为Null,但我在View Like belowe中使用了Above代码,其工作正常且用户具有Value。

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


有什么事吗?

为此,我在Google上搜索并找到了一种方法

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

最佳答案

我怀疑您正在尝试在控制器的构造函数中调用此方法。在HTTP请求执行管道中调用此构造函数为时过早,并且HttpContext在此处不可用。您可以在Initialize方法内访问HttpContext:

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

    // Now you can access the HttpContext and User
    if (User.Identity.IsAuthenticated)
    {
        ...
    }
}

10-06 01:24