Global.asax中的Application_AuthenticateRequest方法中的会话始终为null.我已经尝试过:
this.Session,HttpContext.Current.Session
总是空的.
protected void Application_AuthenticateRequest() { string userRole = string.Empty; if (Request.IsAuthenticated) { if (this.Session["UserRole"] == null) { InsertSessionValue(); } userRole =Session["UserRole"].ToString(); HttpContext.Current.User = new GenericPrincipal(User.Identity,new string[] {userRole}); } }
我也尝试使用Cache,但它不起作用,因为我需要每个用户的唯一信息.
如何在Global.asax中使用Session?HttpApplication Application属性是否对每个用户都是唯一的?
解决方法
您现在无法在请求生命周期中使用Session,它不可用/已填充,如果您想使用它,您需要在生命周期的后期移动到事件,例如
PostAcquireRequestState
.