关于ASP.NET中Cookie的几个问题:
1.开启Forms验证。登录的时候,连接数据库,验证用户成功。创建一个FormsAuthenticationTicket实例ticket,
通过FormsAuthentication.Encrypt(ticket)后,
把ticket放到Cookie中。关闭浏览器,然后打开:
C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files
打开刚才创建的Cookie,修改内容,保存。再打开网页,发现这个Cookie无效了.
ASP.NET是如何识别这个Cookie的?
2.因为登录的时候已经选择“两周内重复登录”,所以下次打开页面的时候就可以初始化数据 了。这样写:protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.Cookies["User"] != null)
{
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies["User"].Value);
string name =FormsAuthentication.HashPasswordForStoringInConfigFile(ticket.Name,"md5");
//其它代码.......
}
}
}这样写有什么问题吗???
还有,通常中Cookie都放些什么内容呢?UserName和ID?
1.开启Forms验证。登录的时候,连接数据库,验证用户成功。创建一个FormsAuthenticationTicket实例ticket,
通过FormsAuthentication.Encrypt(ticket)后,
把ticket放到Cookie中。关闭浏览器,然后打开:
C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files
打开刚才创建的Cookie,修改内容,保存。再打开网页,发现这个Cookie无效了.
ASP.NET是如何识别这个Cookie的?
2.因为登录的时候已经选择“两周内重复登录”,所以下次打开页面的时候就可以初始化数据 了。这样写:protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.Cookies["User"] != null)
{
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies["User"].Value);
string name =FormsAuthentication.HashPasswordForStoringInConfigFile(ticket.Name,"md5");
//其它代码.......
}
}
}这样写有什么问题吗???
还有,通常中Cookie都放些什么内容呢?UserName和ID?
解决方案 »
- GridView 的标题应用样式后,为什么字变成躺着的?
- GridView绑定到SqlDataSource 出现的问题 求救高手解决
- 大家平常的习惯是怎样的???????????????????????????????????????????????
- 求改写一个sql语句!!
- 有些网站一打开就弹出对话框询问是否帮助之类的。点后可以直接聊天是怎么做的??
- 如何将一个外界导入的DataSet插入到数据库中去?!
- 想通过点击LinkButton服务器控件在服务器上的当前目录下创建一个子目录怎么做?
- Web在线编辑器WebHtmlEditor 1.6 Release提供下载(Support .NET Framework v2.0,Support .NET Framework v1.1)
- 可以设定Table或Div的最小宽度吗?
- 菜菜鸟求asp.net课设
- 网页上显示字符的问题!
- 关于{0:c}的问题
cookies保存在游览器里
浏览器关了cookies当然就没了
通过FormsAuthentication.Encrypt(ticket)后,
把ticket放到Cookie中。
Cookie只能保存字符类数据非字符串的数据,你可以进行序列化/反序列化序列化可参考http://dotnet.aspx.cc/article/96a0c148-fddd-48d4-965c-aaac55f15d8a/read.aspx
用户可以改变浏览器的设置,以使用或者禁用Cookies。
微软 Internet Explorer
工具 > Internet选项 > 隐私页
调节滑块或者点击“高级”,进行设置.
Mozilla Firefox
工具 > 选项 > 隐私
(注: 在Linux版本中,可能会是如下操作:编辑 > 属性 > 隐私 , 而Mac则是:Firefox > 属性 > 隐私)
设置Cookies选项
设定阻止/允许的各个域内Cookie
查看Cookies管理窗口,检查现存Cookie信息,选择删除或者阻止它们
苹果计算机 Safari
Safari > 预置 > 安全标签
选择以下的选项
总是 接受 Cookies
永不 接受 Cookies
接受 Cookies 仅从您浏览的站点 (例如,不接受来自其它站点的广告) 预设的选项.
您可以显示所有驻留在您浏览器中的 cookies,也可随时将它们之一删除。
Konqueror
如果没有设置cookie列表,请记住在域名前面加入“.”,例如.baidu.org,否则百度将不会读取cookie(针对KDE 3.3)。
确认信息、
cookies保存在游览器里
浏览器关了cookies当然就没了
/// <summary>
/// 保存用户信息到用户端
/// </summary>
/// <param name="usersDto">用户实体</param>
/// <param name="forever">是否永久保存Cookies</param>
/// <returns></returns>
public void StoreAccount(UsersDto usersDto, bool forever)
{
//保存到Session
HttpContext.Current.Session[ACCOUNT_KEY] = usersDto;
//保存到Cookies
HttpCookie cookies = new HttpCookie(ACCOUNT_KEY);
cookies["memName"] = HttpContext.Current.Server.UrlEncode(usersDto.LoginName);
cookies["memHashKey"] = usersDto.LoginKey;
cookies.Domain = ConfigHelper.Instance.MainDomain;
if (forever)
{
cookies.Expires = Convert.ToDateTime(DateTime.Now + TimeSpan.FromDays(365));
}
HttpContext.Current.Response.Cookies.Set(cookies);
//保存当前用户IP
HttpCookie cookies_ip = new HttpCookie(IP_KEY);
cookies_ip.Value = HttpContext.Current.Request.UserHostAddress;
cookies_ip.Domain = ConfigHelper.Instance.MainDomain;
HttpContext.Current.Response.Cookies.Set(cookies_ip);
}