zoukankan      html  css  js  c++  java
  • ASP.NET整理:Cookie,Application,Session,页面生命周期

    一.设置Cookie2种方式

    1.    Repsonse.Cookie[“名”] = ;

    2.    HttpCookie hcCookie = new HttpCookie(“名”,);

    hcCookie.Expires = Date.Now.AddDays(1);这里可以增加月

    Response.Cookies.Add(hcCookie);

    Cookie中取值:

    string str = Response.Cookies[“名”].Value;

    注意:

    1.Cookie若没指定时间,则默认为到浏览器关闭为止,设为MaxValue则表示永不过期.

    2.另外Cookie中只能存字符串,即Response.Cookie[“Quantity”] = 15;是错误的,只能”15”.

    二.如何接受URL中参数

    Request.QueryString[“URL参数后变量名”];

    Request.Form[“URL参数后名”]

    C#中没有类似于JAVA中的转发功能,没法传对象,要想传对象只能放在session中,或者viewstate页面状态保持中

     

    三.ASP.NET页面的生命周期:

    A.初始化

    B.加载实例:PostBack--ViewState--<%@ Page .....%>//这个每个页面只能出现一次

    C.服务器控件验证

    D.控件事件

    E.Render渲染显示

    F.卸载

    一般一些敏感类数据:用户名、密码、权限等存在session中,而用户上一次登录的时间存放在cookie

    四.Session相关

    获得sessionIdSession.SessionID

    SessionID是保存在Cookies中的,而Cookies是可被禁用掉的

    ∴可采用:URL重写技术,将SessionID附加到URL中;使用表单隐藏技术,服务器将SessionID以隐藏字段的方式添加到表单中。

    1.Session语法:

    Session[“名”] = ; //注意这里没有Value属性,跟Cookie区别

    2.获取:

    变量 = Session[“名”];

    3.特征:

    session一旦过期,Server即刻清除Session对象,释放所占资源

    4.属性:

    Timeout:设置超时时间,单位:分;

    5.方法:

    Clear():从会话状态集合中清除所有键和值(清空值,内存中保留空间)

    Abandon():结束Session,取消当前会话(安全退出功能),因为优先级较低,在当前页面执行完成过以后才执行,这也是为什么“安全退出”按钮点击后页面会跳转一下。

    f.Session在配置文件中的一些设置:

    <system.web>

    <sessionState timeout=”20” cookieless=”true” mode=”SQLServer”></sessionState>

    </system.web>

    6.Session中可以存放对象:

    User user = new User();

    user.ID = 1;

    userName = “Tom”;

    Session[“userInfo”] = user;

    可根据session知否为空来进行判断--->用于访问控制

    if(Session[“userInfo”]==null)

    {

    Response.Redirect(“index.aspx”);

    }

    else

    {

    If(!Page.IsPostBack)

    {

    //...欢迎致辞等

    }

    读取session中的对象:User user = Session[“userInfo”] as User;

    五.Application相关

    赋值:

    Application[""] = ;

    取值:

    变量 = Application[""]; //Application中存储的都是Object类型,取的时候需转型

    Global.asax文件:全局应用程序类

    Application包含5个事件

    Application_Start

    Application_End

    Application_Error

    Session_Start

    Session_End

    使用Application的时候需要进行Lock()操作,eg:

    统计人数功能,在Application_Start事件中:

    Application.Lock();

    Application["count"] = 0;

    Application.Unlock();

    Session_Start中实现自增:

    Application.Lock();

    Application["count"]= (int)Application["count"]+1; //需类型转换;

    Application.Unlock();

    六.RequestServer属性

    浏览器类型:Request.Browser.Browser

    浏览器版本:Request.Browser.Version

    客户端操作系统版本:Rquest.Browser.PlatForm

    客户端IP地址:Request.UserHostAddress

    客户端主机名:Request.UserHostName

    服务器名称:Server.MachineName

    服务器根目录:Server.MapPath

  • 相关阅读:
    理解Linq和lambda
    (转)Fidder教程
    (转)Fiddler Composer创建和发送HTTP Request
    (转)http协议详解
    C# sealed & internal
    javascript中的封装,多态,继承
    Fiddler Script 用法
    强烈推荐:240多个jQuery插件
    用C#编写ActiveX控件(1)
    用C#编写ActiveX控件(二)
  • 原文地址:https://www.cnblogs.com/guojin705/p/4453376.html
Copyright © 2011-2022 走看看