大家好我想知道我们可以在三个approch中存储用户的信息和会话信息以及控制
所以我想知道在哪种情况下我们将使用以下1. View State 2. session state 3. custom cookies
将任何人描述每个的重要性和使用
答案 0 :(得分:6)
检查以下文章将详细描述每个选项
ASP.NET State Management Overview
基于客户端的状态管理选项
基于服务器的状态管理选项
答案 1 :(得分:0)
状态管理是指通过多个请求维护相同或不同页面的状态和页面信息的过程。
国家管理的类型
州管理有两种类型:
一个。查看状态 - Asp.Net使用“视图状态”来跟踪控件中的值。您可以将自定义值添加到视图状态。 Asp.net页面框架使用它在呈现到页面之前自动保存页面和每个控件的值。发布页面时,页面处理执行的第一个任务之一是恢复视图状态。
湾控制状态 - 如果创建需要视图状态才能正常工作的自定义控件,则应使用控件状态以确保其他开发人员不会通过禁用视图状态来中断控制。
℃。隐藏字段 - 与视图状态一样,隐藏字段以HTML格式存储数据,而不在用户的浏览器中显示。只有在处理表单时才能使用该数据。
d。 Cookie - Cookie存储用户浏览器中的值,浏览器将每个页面请求发送到同一服务器。 Cookie是存储必须可用于网站上多个网页的状态数据的最佳方式。
即查询字符串 - 查询字符串存储URL中对用户可见的值。如果希望用户能够通过URL发送电子邮件或即时消息状态数据,请使用查询字符串。
一个。应用程序状态 - 应用程序状态信息可用于所有页面,无论哪个用户请求页面。
湾会话状态 - 会话状态信息可供用户在一次访问期间打开的所有页面使用。
应用程序重新启动时,应用程序状态和会话状态信息都将丢失。要在应用程序重新启动之间保留用户数据,可以使用配置文件属性存储它。
优点
客户端 - 边态管理的优点:
更好的可伸缩性:使用服务器端状态管理,连接到Web服务器的每个客户端都会占用Web服务器上的内存。如果网站具有数百或数千个并发用户,则存储状态管理信息所消耗的内存可能成为限制因素。将这种负担推给客户可消除潜在的瓶颈。
支持多个Web服务器:通过客户端状态管理,您可以在不更改应用程序的情况下跨多个Web服务器分发传入请求,因为客户端提供Web服务器处理请求所需的所有信息。使用服务器端状态管理,如果客户端在会话中间切换服务器,则新服务器不一定能够访问客户端的状态信息。您可以使用具有服务器端状态管理的多个服务器,但您需要智能负载平衡(始终将请求从客户端转发到同一服务器)或集中状态管理(其中状态存储在所有Web服务器的中央数据库中)访问)。
服务器端优势管理:
更好的安全性:可以捕获客户端状态管理信息(在传输过程中或在客户端存储在客户端上)或恶意修改。因此,您永远不应使用客户端状态管理来存储机密信息,例如密码,授权级别或身份验证状态。
带宽减少:如果存储大量状态管理信息,则向客户端来回发送该信息会增加带宽利用率和页面加载时间,从而可能增加成本并降低可扩展性。增加的带宽使用最重要的是影响移动客户端,因为它们通常具有非常慢的连接。相反,您应该在服务器上存储大量的状态管理数据(例如,超过1 KB)