Global.asax Event: Application_OnPostAuthenticateRequest
        Posted  
        
            by Hemant Kothiyal
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Hemant Kothiyal
        
        
        
        Published on 2009-07-18T11:04:50Z
        Indexed on 
            2010/03/21
            23:01 UTC
        
        
        Read the original article
        Hit count: 421
        
asp.net-2.0
Hi, I am using Application_OnPostAuthenticateRequest event in global.asax to get
- roles and permissions of authenticated user also i have made my custom principal class to get user detail and roles and permission. 
- To get some information which remain same for that user. 
following are the code
void Application_OnPostAuthenticateRequest(object sender, EventArgs e) {
    // Get a reference to the current User
    IPrincipal objIPrincipal = HttpContext.Current.User;
    // If we are dealing with an authenticated forms authentication request
    if ((objIPrincipal.Identity.IsAuthenticated) && (objIPrincipal.Identity.AuthenticationType == "Forms"))
    {
        CustomPrincipal objCustomPrincipal = new CustomPrincipal();
        objCustomPrincipal = objCustomPrincipal.GetCustomPrincipalObject(objIPrincipal.Identity.Name);
        HttpContext.Current.User = objCustomPrincipal;
        CustomIdentity ci = (CustomIdentity)objCustomPrincipal.Identity;
        HttpContext.Current.Cache["CountryID"] = FatchMasterInfo.GetCountryID(ci.CultureId);
        HttpContext.Current.Cache["WeatherLocationID"] = FatchMasterInfo.GetWeatherLocationId(ci.UserId);
        Thread.CurrentPrincipal = objCustomPrincipal;
    }
}
My question is as following
- This event fires every time for every request. Hence for each request the code execute?
- My approach is right or not?
- Is it right to add HttpContext.Current.Cache in this event or we should move it on session start
© Stack Overflow or respective owner