我使用ASP.NET MVC 5
和Identity
表示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)
{
...
}
}