Request对象的五个集合:
①、QueryString:用以获取客户端附在url地址后的查询字符串中的信息。
●不要传过长东西,因为长度有限,过长会造成数据丢失。
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");
}