HttpContext.Current.Items["value"] 不起作用,因为 AngularJS 调用创建新会话

2024-06-30

我正在使用 C#、MVC 和 AngularJS。

我的问题是我的 MVC 程序创建了一个HttpContext.Current.Items["value"]并在初始主控制器中设置值,但是当我的 AngularJS 通过 ajax 调用调用应用程序时,它会创建一个新会话,并且我无法获取我之前在我的家庭控制器中设置的值HttpContext.Current.Items["value"] call.

我可以做些什么来解决这个问题吗?我想继续使用HttpContext.Current.Items["value"].

为什么我的 AngularJS 调用会创建新的 sessionid?我知道会话是新的的原因是因为当我使用它时它们有不同的 id:

String strSessionId = HttpContext.Session.SessionID;

HttpContext.Current.Items是一个仅用于请求缓存的字典。一旦请求完成,其中的所有值都将超出范围。

// Will last until the end of the current request
HttpContext.Current.Items["key"] = value;

// When the request is finished, the value can no longer be retrieved
var value = HttpContext.Current.Items["key"];

HttpContext.Current.Session是存储请求之间数据的字典。

// Will be stored until the user's session expires
HttpContext.Current.Session["key"] = value;

// You can retrieve the value again in the next request, 
// until the session times out.
var value = HttpContext.Current.Session["key"];

你的原因HttpRequest.Current.Itemsvalue 不再可用是因为您正在“在您的家庭控制器中”设置它,这是与您的 AJAX 调用完全独立的请求。

会话状态取决于 cookie,因此如果将相同的 cookie 发送回服务器,则可以检索存储在那里的数据。幸运的是,如果你们在同一个域中,AJAX会自动将cookie发送回服务器 https://stackoverflow.com/questions/2870371/why-is-jquerys-ajax-method-not-sending-my-session-cookie.

至于SessionID的变化,ASP.NET 在使用会话之前不会为其分配存储空间 https://stackoverflow.com/questions/2874078/asp-net-session-sessionid-changes-between-requests。因此,您需要在会话状态中显式存储某些内容才能实际启动会话。看这篇 MSDN 文章 https://support.microsoft.com/en-us/kb/899918了解更多信息。

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

HttpContext.Current.Items["value"] 不起作用,因为 AngularJS 调用创建新会话 的相关文章

  • C# 如何更改 windows.forms.listview 中的网格线颜色

    如何更改 windows forms listview 中的网格线颜色 我认为没有办法在不覆盖 Paint Event 的情况下在列表视图上执行此操作 但是 如果您能够切换到网格视图 您可以这样做 this dataGridView1 Gr
  • 配置 SourceTrail 以接受带有 @ 语法的嵌入式 c/c++ 头文件

    我正在尝试使用 Sourcetrail https www sourcetrail com https www sourcetrail com 快速了解 pic18 系列微控制器的一些旧嵌入式 c c 源代码 导入硬件包含文件时出现错误 该
  • C++/OpenCV 将相机视频/图像 (MJPEG) 从套接字流式传输到浏览器 (Windows 8.1)

    对于 openCV C 来说还是很陌生 所以请耐心等待 我目前正在尝试找到一种好的 也可能是简单的 方法来从我的 OpenCV 应用程序实时 或几乎实时 流式传输我的相机帧 以便我可以打开浏览器 输入 IP 并查看图像 到目前为止 我使用w
  • 类似于 Html.RenderAction() 但不重新实例化控制器对象

    我喜欢用RenderAction上的扩展方法HtmlHelper对象在页面中渲染侧边栏等 因为它允许我将每个此类部分的数据访问代码保留在控制器上的单独方法中 使用抽象控制器基础 我可以定义默认的 侧边栏策略 然后可以在需要时通过重写具体控制
  • ASP.NET Core处理JSON反序列化问题

    我想更改 ASP NET Core 中无效 JSON 请求处理的默认行为 我有这个模型 public class Model public Guid Id get set 当我用这个 body 发送这个请求时 Id null 它返回此错误消
  • C++ 相当于 fscanf()?

    请不要说它是 fscanf P 我正在尝试替换这一行 if fscanf fp P c n ch 1 如果我理解正确的话 它会尝试读取 char 并将其存储到 ch 前提是它位于 P 和 n 之间 是对的吗 如果成功 它会返回1 它读取的字
  • IDeserializationCallback 与 OnDeserializedAttribute

    据我了解 当对象在反序列化后需要执行某些任务时 可以使用 IDeserializationCallback 接口和 OnDeserialized 事件 IDeserializationCallback Serializable public
  • 浮点指令异常——FLDZ故障?

    I am trying to debug the problem I posted earlier here C and pin tool very weird DOUBLE variable issue with IF statement
  • 我应该如何继承IDisposable?

    为了保护无辜者 班级名称已更改 如果我有一个名为 ISomeInterface 的接口 我还有继承该接口的类 FirstClass 和 SecondClass FirstClass 使用必须处置的资源 二等舱没有 那么问题来了 我应该从哪里
  • 将 wav 文件存储在数组中

    我需要一种快速方法来将 wav 文件的所有样本存储在数组中 我目前正在通过播放音乐并存储来自示例提供程序的值来解决这个问题 但这不是很优雅 从 NAudio 演示中 我有带有此方法的 Audioplayer 类 private ISampl
  • 如何在类型依赖于派生类的基模板类中声明成员?

    给定一个使用 CRTP 的基类 我正在考虑在基模板类中声明一个成员 其中类型依赖于派生类 虽然以下内容按预期工作 template
  • 尝试写入事件日志时出错 - 无法打开源“SourceName”的日志。您可能没有写入权限

    目前 我们正在尝试将现有的经典 ASP 页面集成到记录事件日志的新方法中 我们通过调用公开为 COM 对象的 NET 程序集来实现此目的 该程序集实际记录到事件日志中 这一切都正常工作 但是当我们尝试写入事件日志时 我们收到错误 无法打开源
  • 在文本文件中搜索字符串的更快方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要使用 C 在一组文本文件中搜索一个大约 13 个字符的字符串 文本文件的数量正在变化 范围在 100 1000 之间 文件大小范
  • 仅仅“抛出”一次捕获有好处吗?

    与一位同事就他将大部分功能包装在 try catch 中的做法进行了 激烈辩论 但 catch 中只有一个 抛出 例如 Private sub foo try Do something catch throw And nothing els
  • 从枚举获取 DescriptionAttribute [重复]

    这个问题在这里已经有答案了 我有一个枚举 用于查找协调字符串值 其中一个枚举中有一个空格 因此我尝试使用描述属性来查找该值 在找到 DescriptionAttribute 后 我在转换回公共类时遇到问题 public class Addr
  • AngularJS ui-router:如何全局解析所有路由的典型数据?

    我有一个 AngularJS 服务 它与服务器通信并返回 申请表不同部分的翻译 angular module utils service Translations q http function q http translationsSer
  • 如何在预处理器中检测X32 ABI或环境?

    X32是一个 ABIamd64 x86 64使用 32 位指针的 CPU 这个想法是将 x86 64 的较大寄存器集与 32 位指针产生的较小内存和缓存占用空间结合起来 它可提供高达约 40 的加速 看x86 x32 和 x64 架构之间的
  • 如何确保 IsInRole 检查不使用缓存的凭据

    我有一个连接到 WCF 服务的 WPF 客户端 我想锁定某些功能 以便只有某些用户可以执行某些操作 WCF 服务在执行服务方法时模拟客户端用户 操作系统是Windows XP 我正在读书这个问题 https stackoverflow co
  • C# 替换 Byte[] 中的字节

    替换字节数组中的某些字节的最佳方法是什么 例如我有bytesFromServer listener Receive ref groupEP 我可以做BitConverter ToString bytesFromServer 将其转换为可读格
  • 使用本机 Win32 读取“C”中的文本文件(Unicode)

    我有一个使用 CreateFile 和 WriteFile 创建的面向行的文本文件 Unicode 使用 ReadFile 以二进制流形式读取该文件非常简单 但需要额外的低级处理才能将其分成几行 是否有 Win32 函数可以为我执行此操作

随机推荐

  • 在颤动的警报对话框中显示选定的图像

    如何在警报对话框中显示选定的图像 在我的应用程序中 我添加了一个带有相机按钮的警报对话框 当用户单击相机按钮时 另一个警报对话框要求从图库中选择文件 用户从图库中选择图像文件后 我想使用相机按钮在警报对话框中显示图像 但图像仅在重新打开警报
  • 在 vbscript 中将子条目添加到 xml 文件中的特定节点

    我有一个包含此条目的 xml 文件 DataConfiguration xml
  • 如何向 Xcode 3.2 添加新字体?

    请告诉我如何向 iphone xcode3 2 添加新字体 此功能未内置到 iOS 字体标签 在 iOS 3 2 中 有UIAppFonts plist 键 https developer apple com library archive
  • 对 boost::python::detail::init_module 和朋友的未定义引用

    我正在尝试使用官方网站上的示例来测试 boost python 但它会产生很多错误 以下是我所做的和错误 下载Boost1 55与this http choorucode com 2013 12 27 how to upgrade the
  • 以向量化方式将两个维度为 5 的数组相乘

    我在 MATLAB 中有一个三维域 对于域中的每个点 我定义了三个大小的数组 NX NY NZ 在域的每个点 A1 size A1 NX NY NZ A2 size A2 NX NY NZ A3 size A3 NX NY NZ 对于每个元
  • 我的代码将对象设置为错误的父对象,如何修复此问题?

    因此 我目前正在为一篇学校论文进行编程 当前我的代码工作计划 或者至少我认为应该是 在使用碰撞作为拖放条件下 将对象设置为指定父级的子级 使用 if 条件的传感器 然而 当我运行游戏时 我小时候想要设置的对象被错误的父母使用 这基本上就是发
  • 无法执行目标 org.apache.felix:maven-scr-plugin:1.17.0:scr

    开始使用 AEM 项目 现在我尝试在本地启动项目并在构建过程中遇到下一个错误 堆栈跟踪剪切 ERROR Failed to execute goal org apache felix maven scr plugin 1 17 0 scr
  • 将字符串转换为数字字段

    我在水晶报表中有一个数据类型为字符串的数据库字段 如何将其转换为数值 在 Crystal 中 您可以通过创建一个使用以下公式的公式来实现 ToNumber功能 针对该字段可能包含非数字数据的可能性进行编码可能是个好主意 如下所示 If Nu
  • 是否有适用于 Java ME 或 BlackBerry 的电子邮件验证器代码?

    是否有一些适用于 Java ME 或 BlackBerry 的标准电子邮件验证器代码示例 public static boolean validateEmailID String email email email trim String
  • C++ Protobuf 与 JSON 的转换 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有人熟悉将 protobuf 消息与 JSON 相互转换的稳定 C 解决方案 库 代码片段等 吗 在我看来 这个更好 https gith
  • JavaMail - 发件人地址被拒绝:访问被拒绝

    好吧 我不知道还能做什么 一周前 当我编写并测试它时 这段代码运行得非常好 然后我将其嵌入到我的程序中 并意识到我不断遇到异常 一切看起来都很正常 发件人地址合法 我用来测试的收件人地址是合法的 怎么了 我很沮丧 private Strin
  • Ext JS grid 获取最后选定行的 dom

    有没有机会获得DOM网格内最后选定行的值 我只能得到带有值的记录 而不是DOM元素 和DOM元素我的意思是 tr 所选行的元素 var selectedRecord grid getSelectionModel getLastSelecte
  • 为什么 wait() 将分叉进程的状态设置为 255 而不是 -1 退出状态?

    我试图从子进程返回一个整数值 但是 如果我使用exit 1 I get 256作为输出wait Using exit 1 gives 65280 有没有办法获取从子进程发送的实际 int 值 if pid fork exit 1 waitp
  • 使用实体框架的子查询

    我正在移植一个子系统NHibernate to 实体框架并希望了解将以下查询移植到的最佳方法EF var date DateTime Now It can be any day AccountBalanceByDate abbd null
  • 如何在触摸屏幕时播放声音? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试制作一款类似飞翔的小鸟的游戏 然而 我正在努力寻找一种在触摸屏幕时播放流行声音的方法 我希望它在每次触摸屏幕时播放声音 我是
  • 如何将值插入DataGridView单元格?

    I have DataGridView 持有任何DataBase 我想将任何值插入到任何单元格中 并且该值将保存在数据库上 如何做到这一点 在 C 中 提前致谢 您可以按如下方式访问任何 DGV 单元 dataGridView1 Rows
  • 如何针对特定的 axios 调用模拟 jest.spyOn

    如何模拟特定的 axios 调用 想象一下 2 个 GET 调用 await axios get api numbers await axios get api letters 那么测试中是这样的 const mockGet jest sp
  • 本地化 Win7 版本上的 UI 截断

    我有两个分别用 C NET 3 和 Wise Installer 开发的 UI UI 是向导页面 这在 Win 7 英文操作系统上完美运行 但是当我在Win7韩语或中文上部署该应用程序时 我看到了截断 即使我对字体进行硬编码 我也会看到这个
  • 如何在background.js中保留变量

    我正在创建一个 chrome 扩展并提出了一个问题 这就是我如何将变量保留在background js 保留 在这里的意思是我的变量backgrund js似乎重新初始化并且先前存储在相应变量中的数据丢失了 我尝试使用chrome runt
  • HttpContext.Current.Items["value"] 不起作用,因为 AngularJS 调用创建新会话

    我正在使用 C MVC 和 AngularJS 我的问题是我的 MVC 程序创建了一个HttpContext Current Items value 并在初始主控制器中设置值 但是当我的 AngularJS 通过 ajax 调用调用应用程序