Request对象的五个集合

①、QueryString:用以获取客户端附在url地址后的查询字符串中的信息。

例如:stra=Request.QueryString ["strUserld"]
 前台传递写法:地址 ?key=value&key=value
注意事项:●不需要保密的东西可以传,在地址栏中是可见的,可更改的。
              ●不要传过长东西,因为长度有限,过长会造成数据丢失。
②、Form:用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)

 例如:stra=Request.Form["strUserld"]
③、Cookies:用以获取客户端的Cookie信息。

 例如:stra=Request.Cookies["strUserld"]
④、ServerVariables:用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。

 例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址
⑤、ClientCertificate:用以获取客户端的身份验证信息

例如:stra=Request.ClientCertificate["VALIDFORM"],对于要求安全验证的网站,返回有效起始日期

Session - 全局变量组
存放位置:服务器上

作用:只要里面有内容,那么这个网站中所有的C#端都能访问到这个变量

优点:安全,速度快,全局访问无限制

缺点:消耗服务器内存资源

Session生命周期:20分钟

介绍:

注意:1、不要存大量数据在Session里
2、临时Session取完无用后记得 = null清空它

cookies

简单摘要:    

在用户电脑的硬盘上保存的一段文本

http协议包括浏览器,允许站点在用户电脑上以Cookies的形式来临时保存数据

如果没有设置保存时间,即会话cookies时:

1、如果你20分钟内没有再次刷新页面,那么此cookies就会自动删除掉

2、当前访问连接中断,如关闭浏览器,那么cookies会自动删除

如果设置保存时间,到时间后,cookies会自动删除

当然,cookies的保存与否,关键在用户,用户可以手动清楚cookie。

作用:保持用户的登陆状态

用法:

1、获取账号:Response.Cookies["user"].Value = TextBox1.Text;

2、给该账号设置登录保持的过期时间:Response.Cookies["user"].Expires = DateTime.Now.AddDays(7);

3、清除cookies:Response.Cookies["user"].Expires = DateTime.Now.AddDays(-5); 只要让数值为负即可,表示已过期几天

登录状态保持实例

建立登录Login页面:

前台代码:

<form id="form1" runat="server">
用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
密码:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<asp:CheckBox ID="CheckBox1" runat="server" /><label for="CheckBox1">记住登陆状态7天</label><br /> <asp:Button ID="Button1" runat="server" Text="登陆" />
</form>

后台代码:

protected void Page_Load(object sender, EventArgs e)
{
Button1.Click += Button1_Click;
} void Button1_Click(object sender, EventArgs e)
{
//取值,数据库查询
bool ok = new UsersDA().Select(TextBox1.Text, TextBox2.Text);
if (ok)
{
//若查到数据,即可以登陆成功
Response.Cookies["user"].Value = TextBox1.Text; if (CheckBox1.Checked)
{
//给cookies设置保存时间
Response.Cookies["user"].Expires = DateTime.Now.AddDays();
}
Response.Redirect("Main.aspx");
}

主界面Main后台代码:

//判断,cookies是否为空,不为空,根据cookies传的值查询
if (Request.Cookies["user"] != null)
{
Users u = new UsersDA().Select(Request.Cookies["user"].Value); Labdl.Text = u.NickName;
Literal1.Text = ",欢迎你!";
}
//为空,跳转登录页面
else
{
Response.Redirect("Login.aspx");
}

有登陆就有退出登录:

Main主界面退出登录前台代码:

<asp:Button ID="Btntc" runat="server" Text="退出登陆" />
后台代码(清除cookies):
void Btntc_Click(object sender, EventArgs e)
{
//1清除cookies
Response.Cookies["user"].Expires = DateTime.Now.AddDays(-);
//2刷新页面/跳到登陆页面
Response.Redirect("Login.aspx");
}

Webform Session Cookies状态保持的更多相关文章

  1. ASP.NET -- WebForm -- Session的使用

    ASP.NET -- WebForm --  Session的使用 Session是服务器端状态保持机制. 1. Test4.aspx文件与Test4.aspx.cs文件 <%@ Page La ...

  2. .Net core 使用特性Attribute验证Session登陆状态

    1.新建一个.net core mvc项目 2.在Models文件夹下面添加一个类MyAttribute,专门用来保存我们定义的特性 在这里我只写了CheckLoginAttribute用来验证登陆情 ...

  3. Kibana6.x.x——启动后警告信息:Session cookies will be transmitted over insecure connections. This is not recommended.

    启动Kibana后,如果你看到如下警告信息: server log [08:03:18.001] [warning][security] Session cookies will be transmi ...

  4. Webform Session、Cookies传值,跳转页面方式

    Session:每个独立的浏览器都会创建一个独立的Session,不是一台电脑一个Session 存放位置:服务器上 作用:只要里面有内容,那么这个网站中所有的C#端都能访问到这个变量 优点:安全,速 ...

  5. WebForm session,cookies

    session : Session:在计算机中,尤其是在网络应用中,称为"会话控制".Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web页之 ...

  6. Oracle session inactive状态临时表数据未清空问题

    问题描述:Oracle数据库,java代码使用某数据库实例,获取connection并在使用结束关闭,而session未销毁,而是状态变为inactive从而导致临时表数据未清空. Oracle临时表 ...

  7. [转]Hibernate Session各种状态转换方法分析

    摘自http://spiritfrog.iteye.com/blog/221177 我的印象里, Hibernate session中常用的保存操作只有:save, update, saveOrUpd ...

  8. 开发移动app与服务器端session的状态管理与交互

    我们进行web开发的时候,一般使用cookie或session来保存用户的登录状态,通过检查cookie或session的数据来验证用户是否具有对某些需要登录的页面的访问权限,这一切都是通过浏览器来完 ...

  9. Session Cookies随笔

    1.对于Session而言 它是用来保存在服务端的信息,可以用来做登录验证,在后台保存有用信息. 一个浏览器访问一个网站,就是建立一个连接,连接信息是独立的,就是在该建立的连接内,保存到Session ...

随机推荐

  1. IE

    .demo { padding:10px; padding:9px\9; /* all ie */ padding:8px\0; /* ie8-9 目前应用于IE8的单独hack,情况比较少 */ * ...

  2. SQLite 创建自增长标识列

    SQLite Autoincrement(自动递增) SQLite 的 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增.我们可以在创建表时在特定的列名称上使用 AUTOINCREM ...

  3. PHP 数据库操作类:ezSQL

    EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.htmlezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.o ...

  4. Java代码常用写法总结

    1.字符串是否为空判断 以下是java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equal ...

  5. 自己封装一个Log模块

    Unity自己有log系统,为什么要自己封装一个 1.不好用,只能在pc上记录log文件,移动平台是没有的 2.在开发时期的log,不想在正式版里面出现.没有一个统一的开关来控制是不是要显示log,要 ...

  6. ajax详细介绍

    a.什么是Ajax    Asynchronous JavaScript and XML(异步JavaScript和XML)     节省用户操作,时间,提高用户体验,减少数据请求    传输获取数据 ...

  7. react-native 之布局篇

    一.宽度单位和像素密度 react的宽度不支持百分比,设置宽度时不需要带单位,那么默认的单位是什么呢? /** * Sample React Native App * https://github.c ...

  8. OpenERP ORM 对象方法列表

    OpenERP对象支持的字段类型有,基础类型:char, text, boolean, integer, float, date, time, datetime, binary:复杂类型:select ...

  9. crontab中执行任务定位到秒级

    每秒执行一次: * * * * * /bin/sleep 1 ; echo "1"

  10. 2016huasacm暑假集训训练三 D - Invitation Cards

    题目链接:http://acm.hust.edu.cn/vjudge/contest/123674#problem/D 题意:一张个向图,求从点1开始到其他各点的最短路权值和加上从其他各点到点1的最短 ...