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

时间:2011-07-27 14:08:04

标签: c# asp.net-mvc razor

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

的代码

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

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

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:6)

仅当用户通过身份验证时,

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