日期:2014-05-19  浏览次数:20486 次

关于Session和Cookie的问题!!!请高手指教~~~
我做了一个网上书店系统(ASP.NET   VS2003),大部分功能都已经实现,但是在购物车的时候有个问题~~~就是这样判断用户是否登陆...我试过用Session和Cookie都未能实现!!!我本人对Session和Cookie也不是很熟悉..所以请大家帮个忙解决下!要怎样使用Session和Cookie!!!谢谢````

------解决方案--------------------
登陆时用户存在创建session
Session[ "Admin "] = txtUser.Text.Trim().ToString();
Response.Redirect( "AdminPage.aspx?action=list ");

在需要登陆页加,如果session不存跳转回登陆页
if (Session[ "Admin "] == null)
{
Response.Redirect( "Login.aspx ");

}
------解决方案--------------------
我来回答 当用户创建的时候要建立SESSION的 不登陆的用户是没有session的,既然你是一个系统就分几个权限吧,就拿两个权限来说吧,一个是admin 一个是user 当登陆的时候判断是什么 如果是管理员那么建立管理员的SESSION Session[ "admin "]=textbox1.tostring();之后跳转到管理员的页面 而在管理员的权限操作之内的页面,当页面载入的时候都要判断起SESSION[“admin”]是否存在 如果存在就可以操作 没有权限跳转回来;同样普通用户的也是这样;而对于未登陆用户就直接session[]==null,具体你可以写的时候组织下,至于COOKIE 我感觉不太好,一般COOKIE好象不太安全,可COOKIE比较方便,而当用户比较多的时候SESSION会比较占资源,不过我还是建议你用SESSION。

本人很少回答问题,今天第一次好好回答了一次,如有什么错误之处,还望海涵
呵呵 表忘了给分哦
------解决方案--------------------
用session和cookie结合的方法,session保留用户的信息,cookie用来设置超时时间

Session 详解http://service.hichina.com/jszc/ShowArticle.asp?ArticleID=1279
全面了解 Cookie的传递流程、编程实现及安全问题
http://blog.csdn.net/yiruoyun/archive/2004/11/23/192987.aspx
------解决方案--------------------
我试过用Session和Cookie都未能实现
=====================================

用session和cookie都能实现,session把个人的信息存放在服务器端,所以对服务器上有性能的损耗.而cookie是存放在客户端的,安全性不足。如果只想好做的话,当然用session。如果想性能好点的话,可以先放在cookie里,提交订单的时候再到服务器上作检查。
------解决方案--------------------
/// <summary>
/// 写cookie
/// </summary>
private void WriteCookie()
{
HttpCookie hcUserName = new HttpCookie( "UserName ");
HttpCookie hcPassword = new HttpCookie( "Password ");
hcUserName.Domain = "www.com ";
hcPassword.Domain = "www.com ";
hcUserName.Value = "%BA%AB%B9%FA%BC%CA ";
hcPassword.Value = "000000 ";
Response.Cookies.Add(hcUserName);
Response.Cookies.Add(hcPassword);
}

/// <summary>
/// 读取Cookies返回Cookies信息
/// </summary>
private string ReadCookie()
{
HttpCookieCollection TermCookies = Request.Cookies;
string strUserInfo = string.Empty;
string strTmpUserName = string.Empty;
string strTmpPassword = string.Empty;

for(int i=0;i <TermCookies.Count;i++)
{
string strCookieName = TermCookies[i].Name;


if(strCookieName == "UserName ")
{
strTmpUserName = System.Web.HttpUtility.UrlDecode(TermCookies[i].Value,System.Text.Encoding.GetEncoding( "gb2312 "));
strTmpUserName = System.Web.HttpUtility.UrlDecode(strTmpUserName,System.Text.Encoding.GetEncoding( "gb2312 "));
}
if(strCookieName == "Password ")
{
strTmpPassword = TermCookies[i].Value;
}
}
strUserInfo = strTmpUserName + "| " + strTmpPassword;
return strUserInfo;
}

------解决方案--------------------
Session,即会话状态,是用户访问网站之后在服务器端保存数据用的,你可以把Session当作是一种站点内的全局变量,只要是站点内的页面都可以取到现有的Session,但是你的访问断之后Session就会消失(“全局变量”被摧毁)。
Cookie,是用户访问网站之后下载并保存在客户机器上的数据信息,客户在断开访问之后依然保存在你的硬盘上,下一次访问该站点还可取Cookie内的数据来用。但Cookie有特定的失效期限,时间到了Cookie就无效了。
我现在做的比较多的是用Session来进行身份验证,可以给你例子给楼主: