如何在 ASP.NET MVC 中禁用会话状态?

2023-12-03

我想要一个非常轻量级的 ASP.NET MVC 站点,其中包括删除尽可能多的常用 HttpModule 并禁用会话状态。但是,当我尝试执行此操作时,出现以下错误:

The SessionStateTempDataProvider requires SessionState to be enabled.

我已在 web.config 中禁用会话状态:

<sessionState mode="Off" />

我知道 ASP.NET MVC 使用 TempData 的会话状态,但我不需要/不想要 TempData - 我只想禁用会话状态。帮助!


您可以创建自己的 ControllerFactory 和 DummyTempDataProvider。像这样的东西:

public class NoSessionControllerFactory : DefaultControllerFactory
{
  protected override IController GetControllerInstance(Type controllerType)
  {
    var controller = base.GetControllerInstance(controllerType);
    ((Controller) controller).TempDataProvider = new DummyTempDataProvider();
    return controller;
  }
}


public class DummyTempDataProvider : ITempDataProvider
{
  public IDictionary<string, object> LoadTempData(ControllerContext controllerContext)
  {
    return new Dictionary<string, object>();
  }

  public void SaveTempData(ControllerContext controllerContext, IDictionary<string, object> values)
  {
  }
}

然后你只需要在应用程序启动时注册控制器工厂 - 例如你可以在 global.asax 中执行此操作:

ControllerBuilder.Current.SetControllerFactory(new NoSessionControllerFactory());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.NET MVC 中禁用会话状态? 的相关文章

随机推荐

  • 没有主键的实体的 Symfony Doctrine 模型

    我在重建 Web 应用程序时正在使用旧数据库 我想使用 Symfony2 x 它显然将 Doctrine 作为 ORM 我有大约 50 个 mysql 表 它们没有主键 当我尝试生成模型时 它不允许我这样做并抛出 表上没有主键 的异常 我是
  • 如何使用联系人框架获取 iOS 9 中的所有联系人记录

    AddressBook 框架的大部分内容在 iOS 9 中已被弃用 在新的 Contacts 框架中文档仅显示如何获取与a匹配的记录NSPredicate 但是如果我想要怎么办all记录 其他两个答案都只从容器中加载联系人defaultCo
  • TLS 不适用于 Kubernetes 中的负载均衡器后端服务

    我试图通过创建服务类型作为负载均衡器来公开集群中的应用程序 这样做的原因是我希望这个应用程序有一个单独的沟通渠道 我有一个 KOPS 集群 我想使用AWS的网络负载均衡器 以便它获得静态IP 当我创建服务并将端口 80 映射到应用程序运行的
  • laravel 5.5 由于不活动,页面已过期。请刷新并重试

    我是 Laravel 的新手 我有一个我不明白的问题 我的项目中有一个日志表单 我的方法是POST 当我尝试请求时 结果是 由于不活动 该页面已过期 请刷新并尝试 再次 但是如果我将方法更改为GET 效果很好 有人可以告诉我为什么会这样以及
  • 卸载从源代码构建的 python?

    我已经从源代码安装了 python 2 6 后来又错误地从包管理器安装了另一个 python 2 6 我找不到卸载从源代码构建的 python 的方法 这可能 容易吗 运行 ubuntu 10 04 您可以使用 checkinstall 来
  • WPF 工具包 DataGrid 复选框问题

    我真的希望有人能在这里帮助我 我的程序中有一个 DataGrid 它有一个复选框列 DataGrid 的 ItemsSource 是以编程方式加载的 DataSet 当我在 DataGrid 中选择几个项目然后滚动它时 我得到了一些非常奇怪
  • 在 HTML 代码中的何处插入 JavaScript 库和 CSS?

    我对 Web 开发不太陌生 当我在互联网上搜索其他主题时 我看到很多人将流行的 JS 库放在他们网站的不同地方 例如 在 上插入 JS 库非常开始或开始 部分 在加载任何 JS 代码或 CSS 文件之前 例如 在 上插入 JS 库结束了 部
  • 如何为spark-submit添加资源jar?

    我的spark应用程序依赖于adam 2 11 0 20 0 jar 每次我都必须将我的应用程序与adam 2 11 0 20 0 jar打包为fat jar以提交到spark 例如我的fat jar是myApp1 adam 2 11 0
  • 以编程方式运行 MSBuild

    我正在尝试以编程方式执行 MSBuild 但无法执行以下命令 string command string Format C Windows Microsoft NET Framework v4 0 30319 msbuild exe 0 1
  • 如何使用 Jersey 2 测试框架为此类编写单元测试

    我正在尝试为 Rest api 调用编写单元测试 该调用具有 POST 方法 用于使用 Jersey2 将视频文件添加到基于 Web 的应用程序 这是我的类方法的签名 TemplateController java 我想为其编写单元测试 P
  • Hibernate MSSQL datetime2 映射

    我有一个存储过程 它返回数据库中数据类型为 datetime2 Java 文件中数据类型为 Date 的列 当我尝试对从数据库获取的时间调用 getTime 时 它返回 19994321211 毫秒 相当于 IST 2015 年 5 月 4
  • 如何使用 fwrite 将结构写入文件?

    我对 C 很陌生 并且在使用 fwrite 时遇到了麻烦 我正在寻找使用一个包含两个值的结构 struct keyEncode unsigned short key 2 unsigned short encoded 2 然后我在 main
  • 如何使用 Jax-RS 返回 Java List Json

    我想知道如何让方法返回 List 的 JSON 数组 例如 GET Produces application json public List
  • 使用 SQLAlchemy 表达式时 Dask read_sql_table 出错

    我正在尝试将 SQLAlchemy 表达式与 dask 的 read sql table 结合使用 以获取通过连接和过滤几个不同表创建的数据集 这文档表明这应该是可能的 下面的示例不包含任何联接 因为不需要它们来复制问题 我构建连接字符串
  • Facebook JS 影响 IE 中的 CSS/@font-face?

    我似乎注意到 Facebook 的 JS div div 似乎影响了我网站在 IE 中的 CSS 例如 假设标题使用 font1 正文使用 font2 有时 在 IE 中 所有字体都使用 font1 甚至交换 标题使用 font2 正文使用
  • 运行 selenium 时如何将参数传递给 google chrome?

    我希望能够在运行 selenium 时将参数传递给 google chrome 我怎样才能做到这一点 当我运行 selenium 时 我使用 Java 命令 Java jar selenium jar 如何将 no sandbox igno
  • 如何从 iOS 应用程序中将视频上传到 YouTube? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 在我的 iOS 应用程序中
  • 如何使用 python 从包含数千个文件的目录中复制前 100 个文件?

    我有一个巨大的目录 并且一直在更新 我试图使用 python 仅列出目录中最新的 100 个文件 我尝试使用 os listdir 但是当目录大小接近 1 00 000 个文件时 listdir 似乎崩溃了 或者我没有等待足够长的时间 我只
  • HashMap 中的键是否存在检查

    检查 HashMap 中的键是否存在总是必要的吗 我有一个包含 1000 个条目的 HashMap 我正在考虑提高效率 如果HashMap的访问非常频繁 那么每次访问时都检查键是否存在将导致很大的开销 相反 如果密钥不存在并因此发生异常 我
  • 如何在 ASP.NET MVC 中禁用会话状态?

    我想要一个非常轻量级的 ASP NET MVC 站点 其中包括删除尽可能多的常用 HttpModule 并禁用会话状态 但是 当我尝试执行此操作时 出现以下错误 The SessionStateTempDataProvider requir