问题标签 [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.
asp.net-mvc - 在 ASP.NET MVC3 中拥有无会话控制器的一些场景是什么?
阅读Guru-Gu 关于 ASP.NET MVC3 命中 RC 的博客文章,他说:-
无会话控制器支持
您现在可以指示您是否希望 Controller 类使用会话状态——如果是,您是否希望它是读/写或 readonly.read/write 或只读。
有人可以解释一下有人可能想要一个无会话控制器的场景是什么吗?还是只读控制器?
我一直在创建一个单独的 IIS 网站,我用它来处理所有静态图像/内容,然后让同一个网站关闭会话状态......所以没有通过网络发送 cookie。这是类似的场景吗?
asp.net-mvc - 在 ASP.NET MVC3 中使用无会话控制器有什么好处?
谁能给我一个详细的答案?
在 ASP.NET MVC 中使用无会话控制器有什么好处?
session - 设计 Web 应用程序:会话或无会话
我希望其他人向我解释,哪种方法更好:使用会话或设计无会话。我们正在开始开发一个新的 Web 应用程序,但尚未决定要遵循的路径。
无会话设计 IMO 更可取:
优点:
- 可扩展性。我们可以拥有任意数量的服务器,而无需共享用户会话。它们中的每一个都可以处理请求(例如通过循环进行负载平衡)。
- 节省服务器资源。我们不需要在服务器端分配内存(再次 - 可伸缩性)。
- 服务器重启后无需恢复。
缺点:
- 必须在 cookie 中保留一些与用户相关的信息(非关键)。
- 需要更多的编码(但不是真正的编码)。
在做出最终决定之前,我们需要注意哪些话题?
session - 在 Stripes 中创建无会话页面
我有一个 Stripes 网站,我将拥有一个会获得大量点击的页面,并且我被要求确保当有人导航到该页面时,Stripes 不会创建用户会话。
有没有办法确保当用户进行某个操作时不会创建会话?
web-services - 禁用会话时的 CSRF 预防
我们想为启用 AJAX 的 Web 服务添加 CSRF 保护。但是一些 Web 服务已经禁用了 Session 状态。那么如何处理呢?
无会话 CSRF 保护(双重提交 cookie)后讨论了这一点,并指出使用 cookie。但是作为这篇文章Anti-CSRF cookie?点,使用cookie可能不是一个好主意。
有人可以指出我去这里的正确方式吗?
提前致谢!
asp.net-mvc - 使用多个步骤管理 ASP.NET MVC 4 页面中的错误(类似于 SPA)
我有一个 ASP.NET MVC 4 应用程序,它有一个部分的行为类似于 SPA。这是一个包含多个步骤的页面,因为我正在无会话工作,所以我正在从客户端向服务器(使用 AJAX)发送每个请求中的实体 ID(我还发送了一个需要对应的 GUID ID 是有效的,这是为了检测数据篡改)。假设用户在第 3 步并且发生以下情况之一: 1) 发生错误:我有一个继承自 HandleErrorAttribute 的全局过滤器,它记录错误并发送电子邮件,毕竟它显示了一个自定义错误页。问题是,如果用户按下浏览器的后退按钮,隐藏字段就会丢失,流程必须从第 1 步重新开始。2) 用户离开页面。
提前致谢。
编辑:
当用户想要离开时,我会显示一个警告对话框。
如果在他离开后按下浏览器的后退按钮,我会将他重定向到流程的第一步,因为之前输入的数据丢失了。
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=/
知道为什么它不起作用吗?以及如何避免为请求创建新会话?
- 我尝试了 Rick 的其他解决方案,但结果与上述相同。
haskell - Yesod Auth:无会话身份验证插件流程
我正在尝试使用 Yesod 作为移动应用程序的 API 后端,并选择使用承载 JWT 来处理身份验证和授权。我已经覆盖maybeAuthId
,以便 Yesod.Auth 接受(或拒绝)JWT 就好了。但是,我无法弄清楚如何让身份验证插件向客户端返回令牌,而不是其将 AuthId 存储在客户端会话中并重定向客户端的默认行为。有没有办法改变默认的身份验证插件流程,让它返回一个令牌给客户端?
更新:我已经在文档和源代码中研究了一段时间,并且对 auth 插件现在的工作方式有了更好的了解:Auth 插件在内部调用setCredsRedirect
以设置会话并执行回调onLogin
。using 的问题onLogin
是Creds
无法从该函数内部访问。对于解决方案,我唯一的另一个想法是编辑authenticate
函数以使用 JWT 进行响应。
c# - 控制器不能同时服务请求
我想FFMPEG
在服务器端使用长时间运行的过程来转换视频文件。我决定向AJAX
服务器发送请求,因此转换过程应该并行运行。但是我的控制器一次只服务一个请求,因为这需要很长时间才能完成任务。我调查了问题,我知道SessionState
make的控制器执行序列化了。这里更详细地解释了相同的问题。我想SessionState
禁用MVC 2
.
这是添加在MVC 3+
. 如何达到相同的效果MVC 2
我有简单的Controller Action
调用CovertFile
方法来转换文件FFMPEG
,下面是参考代码
更新 :
为了确认控制器是否真正序列化,我运行以下测试:
在视图中:
结果 :
Chrome 网络控制台:
从结果中可以清楚地看出,对控制器的 ajax 调用是阻塞的。除非先前的 ajax 请求未完成,否则请求无法启动,因此控制器被序列化并一次服务一个请求。
更新 2:
我想用相同的方法创建两个单独的控制器,并同时向单独的控制器发送 ajax 请求以检查它们是否并行执行
JavaScript:
结果 :
结果令人震惊。即使是两个不同的控制器也不能同时服务请求。
我正在使用.NET MVC 2
如何使控制器异步?
有没有人有解决方法。