您现在的位置是:首页 >

不同激励方式的优缺点 详解ASP.NET 状态管理方式优缺点

火烧 2023-02-26 03:09:56 1057
详解ASP.NET 状态管理方式优缺点   现在ASP NET程序员可以使用很多种方式来保存用户请求信息 下面主要介绍ASP NET关于状态管理的几种方式   一般而言 HTTP协议是非状态服务 它不

详解ASP.NET 状态管理方式优缺点  

  现在ASP NET程序员可以使用很多种方式来保存用户请求信息 下面主要介绍ASP NET关于状态管理的几种方式

  一般而言 HTTP协议是非状态服务 它不保存任何用户请求信息 直至NetScape开始使用Cookies来保存用户请求信息 Web应用程序有了极大的发展 现在ASP NET程序员可以使用很多种方式来保存用户请求信息

  下面主要介绍ASP NET关于状态管理的几种方式

  客户端

  ASP NET 提供了Cookies QueryStrings (URL) Hidden fields View State and Control state (ASP NET ) 来管理客户端请求

  一 Cookie

  Cookie是以文本存储于计算机中 使用name value匹配 一般用户存储标识用户信息 如 用户名 用户使用配置等 虽然Cookie可以被加密存储 但不推荐在Cookie中保存用户密码 第二 Cookie的大小是限定的 所以不适合存储大型数据

  Example

   获取用户ID

  

  if (Request Cookies[ UserId ] != null) lbMessage text = Dear + Request Cookies[ UserId ] Value + Wele to our website! ; else lbMessage text = Guest wele to our website! ;

   设置Cookie

  

  Response Cookies[ UserId ] Value=username;

  优点

  使用简单

  缺点

   客户端可以禁用Cookie

   Cookie在每次请求或发送时都会被加载 影响传输

   易被攻破 所有不适合存储安全信息

  二 Hidden fields(隐藏控件)

  Hidden field是在页面级保存信息 与其他用户标准控件的区别是 Hidden Field不被呈现在页面中 当页面提交的时候 Hidden Field中的值将被一同发送给服务端 虽有在ASP NET 中 我们可以使用ViewState来代替 但Hidden Fields依然可以用来存放一些不关键信息

  

  protected System Web UI HtmlControls HtmlInputHidden Hidden ; //to assign a value to Hidden field Hidden Value= Create hidden fields ; //to retrieve a value string str=Hidden Value;

  优点

   使用简单

   可以存储少量数据

  缺点

   不安全 以明文的形式直接从网络传输

  三 View State(状态视图)

  状态视图ViewSate 可以用来为单独用户存储信息 你可以通过设置EnableViewState属性来控制ViewState的使用 在默认的情况下属性值为True ViewSate在每次用户请求或服务端响应时 都会被传输 所以 为了减少网络带宽的使用 可以在不需要状态视图时设置EnableViewState属性值为False ViewSate在页面中的存储是经过Base 转码的 增加了额外的数据量 所以一定要注意保存较少的ViewSate

  

  // Add item to ViewState ViewState[ myviewstate ] = myValue; //Reading items from ViewState Response Write(ViewState[ myviewstate ]);

  优点

  操作简单

  被加密

  可以在控件级别使用

  缺点

  加密编码增加了页面的大小

  增价了网络传输

  四 Query strings

  Query String常用于页面传值 很多浏览器都会有长度限制 一般在 个字节 值得注意的是 尽量使用Server UrlEncode 来避免一些意外情况 如Sql注入

  

  string productid;productid=Request Params[ productid ]

  服务端

  一 Application

  Application在整个应用程序都是可见的 所有用户分享同一个Application 在ASP中 常用来存放链接字符串

  

  Application Lock(); Application[ mydata ]= mydata ; Application UnLock();

  二 Session

  Session为每个用户单独存储用户信息 Session有三种存放方式 inproc sqlserver stateserver

  InProc 数据保存在服务端进程中 由于目前有 M的内存限制 可以导致进程重启 而失去所有的状态信息

  SqlServer 存放与数据库之中 用户状态可以永久保留

不同激励方式的优缺点 详解ASP.NET 状态管理方式优缺点

  StateServer 存放与另一台状态服务器中

  

  Session[ UserId ]= UserId ; string UserId = Session[ UserId ] ToString();

lishixinzhi/Article/program/net/201311/11294  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码