• Session的使用


      ASP.NET中Session的用法之一:使用Session设定权限

    Session简介:

    简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串。

    Session的初次使用:

      protected void Page_Load(object sender, EventArgs e) {

        //这是页面的初始化

        if (!Page.IsPostBack)

        {

          //判断是否为初次执行

          if (Object.Equals(Session["AdminName"], null))

          {

            //判断在Session["AdminName"]是否存在值

            Response.Redirect("ErrorPage.aspx", true);

          }

          else

          {

            //要是存在则记录下这个人的用户名

            Name.Text = Session["AdminName"].ToString();

          }

        }

      }

    ASP.NET中Session的用法之二:进行页面传值

    在页面之间传递信息有许多方式: 第一:可以使用QueryString 第二:可以使用Session 第三:Server.Transfer 这三种传值方式都有利有弊,下面我以我的经验给大家讲解一下 首先:QueryString QueryString是一种非常简单的传值方式,其缺点就是会把要传递的值显示在浏览器的地址栏中,并且此方法不能够传递对象。如果你想传递一个安全性不是那么重要或者是一个简单的数值时。使用此方式最好不过。

    下面通过一个小例子来说明一下

    1.创建一个Web页面,叫SendMessage.aspx

    2.在页面内添加两个TextBox,叫TxtName,TxtEmail,与一个Button,

    叫Submit protected void Submit_Click(object sender, EventArgs e)

      {

        String Url = "ReceiveMessage.aspx?Name=" + TxtName.Text + "&Email=" + TxtEmail.Text; Response.Redirect(Url);

      }

    3.再创建一个接收信息页面,叫ReceiveMessage.aspx

    4.在页面内添加两个Label,叫LbName,

      LbEmail protected void Page_Load(object sender, EventArgs e)

      {

        //使用Request来接收由上个页面传递过来的值,分别显示在页面上

        LbName.Text = Request.QueryString["Name"];

        LbEmail.Text = Request.QueryString["Email"];

      }

    再次:使用Session变量

    使用Session变量传值是一种最常见的方式了,此种方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值Remove后,才消失

    下面举例说明

    1.创建一个页面,叫SendSession

    2.在页面内添加两个TextBox,叫TxtName,TxtEmail,添加一个Button,

    叫Submit protected void Submit_Click(object sender, EventArgs e)

    {

      //可以使用Session的Add方法

      Session["Name"] = TxtName.Text;

      //可以使用

      Session.Add("Name",TxtName.Text);

      Session["Email"] = TxtEmail.Text;

      //可以使用

      Session.Add("Email",TxtEmail.Text);

      Response.Redirect("ReceiveMessage.aspx");

    }

    3.再创建一个页面,叫ReceiveMessage.aspx

    4.在页面内添加两个Label,叫LbName

    LbEmail protected void Page_Load(object sender, EventArgs e)

    {

      LbName.Text = Session["Name"].ToString();

      LbEmail.Text = Session["Email"].ToString();

      Session["Name"].Remove(); Session["Email"].Remove();

      //使用结束要清除Session中的值

    }

    这是使用Session传递数值,此方式耗费服务器的资源,尽量少使用

    再次:使用Server.Transfer 这种传递方式有点复杂,但也可以是一种值传递方式

    下面举例说明一下:

    1.创建一个页面,叫SendMessage.aspx

    2.在页面内添加两个TextBox,叫TxtName,TxtEmail,添加一个Button,

    叫Submit protected void Submit_Click(object sender, EventArgs e)

    {

      Server.Transfer("ReceiveMessage.aspx");

    }

    再添加一个属性

    public String Name

    {

      Get

      {  

        return TxtName.Text;

      }

    }

    public String Email

    {

      Get

      {

        return TxtEmail.Text;

      }

    }

    3.再创建一个页面,叫ReceiveMessage.aspx

    4.在页面放两个Label,叫LbName,

    LbEmail protected void Page_Load(object sender, EventArgs e)

    {

      //创建原始窗体的实例SendMessage wf1

      //获得实例化的句柄

      wf1=(SendMessage)Context.Handler;

      Label1.Text=wf1.Name; Label2.Text=wf1.EMail;

    }

  • 相关阅读:
    C# 并行线程调用
    Oracle定时备份
    读取Excel里面的内容转为DataTable
    c# 将json数据转为键值对
    Py基础+中级
    深入理解DIP、IoC、DI以及IoC容器(转载)
    错误页面的配置
    JavaScript重载
    关于为空必填js判断
    MyEclipse CI 2018.8.0正式发布(附下载)
  • 原文地址:https://www.cnblogs.com/Yida-Tingting/p/4576319.html
Copyright © 2020-2023  润新知