gpt4 book ai didi

.NET MVC 和在页面之间安全地传递数据

转载 作者:行者123 更新时间:2023-12-02 15:02:08 25 4
gpt4 key购买 nike

首先介绍一些背景信息。我职业生涯的大部分时间都在使用 Web 窗体,最近对 .NET MVC 产生了兴趣。我意识到它是无状态的,但是,我不明白它如何完全可行。在表单应用程序中,用户进行身份验证,然后我返回用户 ID 和一些角色,然后将它们放置在该用户 session 中。当我需要它们时,我所要做的就是将其从 session 中取出,然后我就拥有了它们。据我所知,session 和 MVC 是互斥的。我读过,可以使用 TempData 来传递值,但它仅在一页访问中持续存在,然后就消失了。除了向我想要传递数据的每个 Controller 添加冗余代码之外,是否有一种标准方法可以将数据“保留”在 MVC 站点上?

最佳答案

我认为这里的术语可能有些困惑。这里真正无状态的是 HTTP 协议(protocol)。 ASP.NET WebForms 是一种开发技术,旨在尝试构建一个“解决”HTTP 无状态性的框架,并创建一个基于 Web 的有状态应用程序框架。这就是为什么您会在 WebForm 中看到诸如 ViewState 之类的内容,它本质上沿着管道承载应用程序的状态。

ASP.NET MVC 出现并采用了不同的方法。它支持 HTTP 的无状态性。这就是 MVC 中没有 ViewState 的原因。

但是,这并不意味着您不再与有状态实体交互。客户端计算机(例如浏览器)是一个有状态的应用程序,就像运行服务器端代码的服务器(在本例中为 IIS 或其他)也是有状态的。

因此,服务器端的事物仍然是有状态的(例如 session 、应用程序、缓存),您仍然可以使用它们。此外,客户端也是有状态的,这就是客户端脚本近年来变得如此强大的原因;人们试图充分利用浏览器的状态性。

关于.NET MVC 和在页面之间安全地传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/945797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com