User.Identity.Name throw对象引用未设置为实例

时间:2016-09-29 08:59:49

标签: asp.net-mvc-4 windows-authentication

我有这段代码

public UserProfile spUserProfileGet()
        {
            // this line throw : Object reference not set to an instance 
            var user = HttpContext.Current.User.Identity.Name;

            //...

        }

在我的IIS开发设置中,我有

Anonymous Authentication : Disabled
Windows Authentication : Enabled

我正在接受

Object reference not set to an instance 

为什么?我之前在很多项目中使用这个类没有问题:/

HttpContext.Current.UserNULL,但为什么?

1 个答案:

答案 0 :(得分:0)

问题是,我从global.asax HttpContext.Current.User调用了Application_BeginRequest(),它还没有包含此对象。以下是应用程序生命周期https://msdn.microsoft.com/en-us/library/ms178473.aspx的说明以及何时将代码复制到 Application_PostAuthenticateRequest,现在有效。

剩下的问题是Application_PostAuthenticateRequest被触发两次。