我正在使用全局过滤器来确定是否允许用户访问某个页面/控制器。由于无法创建简单的会话变量,因此我无法对此进行很多了解。这是我的简化代码:
public class MyActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext context)
{
context.HttpContext.Session.Add("asdfasdf", 1234);
//Check if user is authorized in db
//...
base.OnActionExecuted(context);
}
}
错误:
System.Web.HttpException: Failed to login to session state SQL server for user '<USERNAME>'.
如果我注释掉Session.Add
应用程序工作正常。这很奇怪,因为给出的错误完全不相关(我认为)。在这种情况下如何让我的会话变量工作?更好的问题,这是进行用户身份验证的正确方法吗?