• 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

  • 相关阅读:
    Silverlight开发历程—动画(实现跑马灯效果)
    将小写金额转换成为大写
    Silverlight—C#代码实现变形特效
    Silverlight开发历程—C#代码添加动画
    Silverlight开发历程—动画(线性动画)
    仿腾讯登录验证码
    光线CMS系统,如何显示幻灯片
    Winform打开窗口时出现“确保已安装文件类型.cs的应用程序”的解决方法
    #2003 – 服务器没有响应 MySQL 无法启动
    根据对方提供的URL获取返回的数据流并保存为XML
  • 原文地址:https://www.cnblogs.com/guojin705/p/4453376.html
Copyright © 2020-2023  润新知