问题标签 [session-less]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5630 浏览

asp.net-mvc - 在 ASP.NET MVC3 中拥有无会话控制器的一些场景是什么?

阅读Guru-Gu 关于 ASP.NET MVC3 命中 RC 的博客文章,他说:-

无会话控制器支持

您现在可以指示您是否希望 Controller 类使用会话状态——如果是,您是否希望它是读/写或 readonly.read/write 或只读。

有人可以解释一下有人可能想要一个无会话控制器的场景是什么吗?还是只读控制器?

我一直在创建一个单独的 IIS 网站,我用它来处理所有静态图像/内容,然后让同一个网站关闭会话状态......所以没有通过网络发送 cookie。这是类似的场景吗?

0 投票
2 回答
2293 浏览

asp.net-mvc - 在 ASP.NET MVC3 中使用无会话控制器有什么好处?

谁能给我一个详细的答案?

在 ASP.NET MVC 中使用无会话控制器有什么好处?

0 投票
2 回答
3883 浏览

session - 设计 Web 应用程序:会话或无会话

我希望其他人向我解释,哪种方法更好:使用会话或设计无会话。我们正在开始开发一个新的 Web 应用程序,但尚未决定要遵循的路径。

无会话设计 IMO 更可取:

优点:

  1. 可扩展性。我们可以拥有任意数量的服务器,而无需共享用户会话。它们中的每一个都可以处理请求(例如通过循环进行负载平衡)。
  2. 节省服务器资源。我们不需要在服务器端分配内存(再次 - 可伸缩性)。
  3. 服务器重启后无需恢复。

缺点:

  1. 必须在 cookie 中保留一些与用户相关的信息(非关键)。
  2. 需要更多的编码(但不是真正的编码)。

在做出最终决定之前,我们需要注意哪些话题?

0 投票
1 回答
806 浏览

asp.net-mvc - MVC 3 - 无会话控制器数据存储选项

我最近一直在阅读有关无会话控制器的文章,这似乎是一个有趣的想法,因为它提高了性能并让 ajax 调用像通常那样异步。

但是,我想不出一种很好的方法来存储以前由会话存储的数据。我有很多单次获取的数据,我一次获得并浏览了几页。我的第一个想法是使用 MemoryCache,但阅读这篇文章我开始怀疑它,因为 IIS 可以随时释放我的数据。

因此,我对如何以类似会话的方式存储数据感到有些困惑。我读了一些关于 NoSQL 和 MongoDB 的东西,但这与在我需要的时候一直获取数据不一样吗?

你能给我一些说明和技术,我可以用来作为临时数据存储吗?

0 投票
1 回答
164 浏览

session - 在 Stripes 中创建无会话页面

我有一个 Stripes 网站,我将拥有一个会获得大量点击的页面,并且我被要求确保当有人导航到该页面时,Stripes 不会创建用户会话。

有没有办法确保当用户进行某个操作时不会创建会话?

0 投票
0 回答
1032 浏览

web-services - 禁用会话时的 CSRF 预防

我们想为启用 AJAX 的 Web 服务添加 CSRF 保护。但是一些 Web 服务已经禁用了 Session 状态。那么如何处理呢?

会话 CSRF 保护(双重提交 cookie)后讨论了这一点,并指出使用 cookie。但是作为这篇文章Anti-CSRF cookie?点,使用cookie可能不是一个好主意。

有人可以指出我去这里的正确方式吗?

提前致谢!

0 投票
1 回答
193 浏览

asp.net-mvc - 使用多个步骤管理 ASP.NET MVC 4 页面中的错误(类似于 SPA)

我有一个 ASP.NET MVC 4 应用程序,它有一个部分的行为类似于 SPA。这是一个包含多个步骤的页面,因为我正在无会话工作,所以我正在从客户端向服务器(使用 AJAX)发送每个请求中的实体 ID(我还发送了一个需要对应的 GUID ID 是有效的,这是为了检测数据篡改)。假设用户在第 3 步并且发生以下情况之一: 1) 发生错误:我有一个继承自 HandleErrorAttribute 的全局过滤器,它记录错误并发送电子邮件,毕竟它显示了一个自定义错误页。问题是,如果用户按下浏览器的后退按钮,隐藏字段就会丢失,流程必须从第 1 步重新开始。2) 用户离开页面。

提前致谢。

编辑:

当用户想要离开时,我会显示一个警告对话框。

如果在他离开后按下浏览器的后退按钮,我会将他重定向到流程的第一步,因为之前输入的数据丢失了。

0 投票
1 回答
325 浏览

asp.net-mvc-2 - 无会话 ASP.NET MVC 2 请求还有会话

由于我们需要异步 Ajax 请求,因此需要禁用会话状态。Web 应用程序基于 ASP.Net 4 - MVC 2。

我知道[SessionState(SessionStateBehavior.Disabled)],但是它在 MVC 3+ 中可用。

我正在使用以下方法将特定的 HTTP 请求路由到无会话 HTTPContext [源]

在 Global.asax 中:

结果?代码编译正确,运行时没有错误。但是,它并没有改变任何东西,并且在每个 Ajax 请求的 HTTP 标头中,我都会看到一个带有新会话的新 set-cookie。例如,一个浏览器可能会请求 100 个 Ajax 请求,并且会为每个请求生成一个新的会话。而且我从不需要会话来处理静态 Ajax 请求。我在 Chrome 网络监视器诊断的每个 Ajax 请求中看到以下行:

Set-Cookie:ASP.NET_SessionId=xlgxdzdxdeilws23prjns3cv; domain=mydomain.com; path=/

知道为什么它不起作用吗?以及如何避免为请求创建新会话?

0 投票
0 回答
386 浏览

haskell - Yesod Auth:无会话身份验证插件流程

我正在尝试使用 Yesod 作为移动应用程序的 API 后端,并选择使用承载 JWT 来处理身份验证和授权。我已经覆盖maybeAuthId,以便 Yesod.Auth 接受(或拒绝)JWT 就好了。但是,我无法弄清楚如何让身份验证插件向客户端返回令牌,而不是其将 AuthId 存储在客户端会话中并重定向客户端的默认行为。有没有办法改变默认的身份验证插件流程,让它返回一个令牌给客户端?

更新:我已经在文档和源代码中研究了一段时间,并且对 auth 插件现在的工作方式有了更好的了解:Auth 插件在内部调用setCredsRedirect以设置会话并执行回调onLogin。using 的问题onLoginCreds无法从该函数内部访问。对于解决方案,我唯一的另一个想法是编辑authenticate函数以使用 JWT 进行响应。

0 投票
0 回答
135 浏览

c# - 控制器不能同时服务请求

我想FFMPEG在服务器端使用长时间运行的过程来转换视频文件。我决定向AJAX服务器发送请求,因此转换过程应该并行运行。但是我的控制器一次只服务一个请求,因为这需要很长时间才能完成任务。我调查了问题,我知道SessionStatemake的控制器执行序列化了。这里更详细地解释了相同的问题。我想SessionState禁用MVC 2.

这是添加在MVC 3+. 如何达到相同的效果MVC 2

我有简单的Controller Action调用CovertFile方法来转换文件FFMPEG,下面是参考代码


更新 :

为了确认控制器是否真正序列化,我运行以下测试:

在视图中:

结果 :

Chrome 网络控制台:

在此处输入图像描述

从结果中可以清楚地看出,对控制器的 ajax 调用是阻塞的。除非先前的 ajax 请求未完成,否则请求无法启动,因此控制器被序列化并一次服务一个请求。


更新 2:
我想用相同的方法创建两个单独的控制器,并同时向单独的控制器发送 ajax 请求以检查它们是否并行执行

JavaScript:

结果 :

结果令人震惊。即使是两个不同的控制器也不能同时服务请求。

我正在使用.NET MVC 2如何使控制器异步?
有没有人有解决方法。