当用户第一次访问该站点时,使用User.Identity.Name

rak*_*los 4 c# asp.net-mvc razor

我想运行一些使用User.Identity.Name的代码,

我想在用户第一次进入网站时运行该代码.(可以每次关闭浏览器然后重新打开网站)

我尝试将它放在global.asax的Application_Start中,但User.Identity.Name名称返回null;

我怎样才能做到这一点?

Cor*_*ter 7

根据您的描述,您可能希望将代码放在Session_Start中,而不是Application_Start.Session_Start是应用程序第一次看到每个用户时触发的事件.

以下是Global.asax中可用的事件列表:http://msdn.microsoft.com/en-us/library/system.web.httpapplication_events%28v=VS.100%29.aspx


Dar*_*rov 6

User.Identity.Name仅在用户通过身份验证时才会为null.如果您正在使用,Forms Authentication这将在您致电时发生FormsAuthentication.SetAuthCookie.如果您使用的是集成Windows身份验证,则通常会在用户首次请求站点时自动对其进行身份验证.通常你不应该尝试访问它Application_Start.您可以编写自定义授权Application_AuthenticateRequest方法,该方法在安全模块建立用户身份时触发.