我有一个MVC4项目,我在其中实现了question之后的自定义Windows身份验证。
一切正常,我创建了我的角色数据库等等。问题是我想暂时将角色存储到会话变量中,因为几乎每个控制器的操作都有一个身份验证属性,因此每个身份验证请求都会访问数据库,我不希望这样。
所有的魔法都发生在Application_AuthenticateRequest
中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才能实现这一目标?
谢谢!