MVC SessionStateAttribute不作为全局属性使用

MVC SessionStateAttribute不作为全局属性使用,session,asp.net-mvc-3,attributes,session-state,Session,Asp.net Mvc 3,Attributes,Session State,如何在MVC3中将SessionStateAttribute设置为全局筛选器? 在我的Global.asax中,我在RegisterGlobalFilters方法中有这个 filters.Add(new SessionStateAttribute(SessionStateBehavior.Disabled)); 在我家的控制器里我有这个 public class HomeController : Controller { public ActionResult Index()

如何在MVC3中将SessionStateAttribute设置为全局筛选器? 在我的Global.asax中,我在RegisterGlobalFilters方法中有这个

filters.Add(new SessionStateAttribute(SessionStateBehavior.Disabled));
在我家的控制器里我有这个

public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";

        Session["Blend"] = "Will it blend?";

        return View();
    }

    public ActionResult About()
    {
        return View();
    }
}
但出于某种原因,它仍然允许我使用会话。但是,如果我用属性修饰HomeController类本身,我会在使用会话的行上得到一个关于对象引用为null的错误,我猜如果会话从未创建,这是故意的

我开始怀疑我的项目是否有问题。我一直遇到像这样的小问题,标准的行为应该是正常的

其他人有类似问题吗?

不是,因此不能将其添加为全局操作筛选器。它是一个特殊的属性,允许您使用它来装饰控制器,并对每个控制器的会话模式进行更细粒度的控制

要全局禁用整个应用程序的会话,请将以下内容放入web.config:

<sessionState mode="Off" />

哇,真有意思。你会感到惊讶的是,我遇到过多少网站使用SessionStateAttribute作为如何在MVC中使用全局过滤器的示例,我想他们中没有一个在将示例发布到internet之前实际测试过:-P