Asp.net mvc 4 临时存储自定义windows身份验证角色

Asp.net mvc 4 临时存储自定义windows身份验证角色,asp.net-mvc-4,windows-authentication,Asp.net Mvc 4,Windows Authentication,我有一个MVC4项目,在该项目中,我实现了自定义windows身份验证 一切正常,我创建了我的角色数据库等等。问题是,我想将角色临时存储到会话变量中,因为几乎每个控制器的操作都有一个身份验证属性,所以每个身份验证请求都会命中数据库,我不希望这样 所有的魔法都发生在应用程序中 protected void Application_AuthenticateRequest(object sender, EventArgs e) { if (Request.IsAuthentic

我有一个MVC4项目,在该项目中,我实现了自定义windows身份验证

一切正常,我创建了我的角色数据库等等。问题是,我想将角色临时存储到会话变量中,因为几乎每个控制器的操作都有一个身份验证属性,所以每个身份验证请求都会命中数据库,我不希望这样

所有的魔法都发生在应用程序中

protected void Application_AuthenticateRequest(object sender, EventArgs e)
    {
        if (Request.IsAuthenticated)
        {
            WindowsIdentity wi = (WindowsIdentity)HttpContext.Current.User.Identity;
            CustomPrincipal mp = new CustomPrincipal(wi);
            HttpContext.Current.User = mp;
        }

    }
在这种情况下,HttpContext.Session(目前)不可用,但每个请求都会在其他请求之前命中此事件

我想存储基于会话的角色,是否有办法做到这一点,或者我必须实现身份验证cookie才能实现这一点

谢谢大家!