Global.asax中的ASP.NET会话

前端之家收集整理的这篇文章主要介绍了Global.asax中的ASP.NET会话前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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.

猜你在找的asp.Net相关文章