日期:2014-05-18  浏览次数:20773 次

谁有CSDN保持用户登录两周这个功能的代码。
两个问题
1,CSDN上的用户登录两周不用登陆的代码。应该是对文件COOKIE的操作。
2,Cookie是否能跨域访问。为什么?
在线等待。回答后就给分

------解决方案--------------------
如果不是COOKIE Session之类的应该就是把登陆信息放在服务端了
应该是数据库有个字段负责存放吧
------解决方案--------------------
对cookie设置有效时间:
http://topic.csdn.net/t/20050111/14/3716295.html
跨域的操作:
http://www.neomusicgroup.com/web/3/11/1339.asp
------解决方案--------------------
1,CSDN上的用户登录两周不用登陆的代码。应该是对文件COOKIE的操作。

Response.Cookies[ "Login "].Expires = DateTime.Now.AddDays(14);
------解决方案--------------------
Cookie的作用是有域的。要做到跨域认证,必须把两个域的认证Cookie都加入客户端。流程大致如下

C (Client) -> 请求认证 -> SA (Server A)
SA -> 开始认证,成功后得到认证Cookie A
SA -> 后台连接SB (Server B)认证 -> SB
SB -> 认证成功返回认证Cookie B -> SA
SA -> 加入Cookie A到回复,加入Cookie B到回复 -> C
------解决方案--------------------
要保持认证有效2周,就要把认证Cookie的有效时间设定为2周就可。
------解决方案--------------------
设计网站的COOKIES有效 setcookie( "user ", "aaa ", time()+60*60*24*30);//一月
Response.Cookies[ "Login "].Expires = DateTime.Now.AddDays(14);
try{
string userName = Request.Cookies[ "UserName "].Value;
string password = Request.Cookies[ "Password "].Value;
}
catch { }

if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password))
//如果其Cookies中没有其登录信息,则去前台TextBox中去取得
{
userName = userID.Text.Trim(); //从TextBox中读取
password = userPwd.Text.Trim();


//判断用户名与密码
if (saveCookie.Checked == true)//判断用户是否选择了保存用户Cookies
{
if (CheckUser(userName, password))
{
Response.Cookies[ "UserName "].Expires = DateTime.Now.AddDays(14);
Response.Cookies.Add(new HttpCookie( "UserName ", userName));
Response.Cookies.Add(new HttpCookie( "Password ", password));

Response.Redirect( "..\\Default.aspx ");
return;
}
else
{
Response.Redirect( "Error.aspx ");
return;
}
}
else
{
if (CheckUser(userName, password))
{
Response.Redirect( "..\\Default.aspx ");
return;
}
else
{
Response.Redirect( "Error.aspx ");
return;
}

}
------解决方案--------------------

看看这个能帮你不

、 写入Cookie

  其实用JSP操作Cookie是非常简单的,我们来看下面一段JSP程序:

  ........(中间略)


<%
String cookieName="Sender";
Cookie cookie=new Cookie(cookieName, "Test_Content");
cookie.setMaxAge(10);
response.addCookie(cookie);
%>
........(其他内容)


  这样我们就设置了一个Cookie,很简单吧?

  我们来仔细研究一下这段代码:

  Cookie cookie=new Cookie(cookieName, "Test_Content");

  这一行建立了一个Cookie对象,初始化有两个参数,第一个参数cookieName定义了Cookie的名字,后一个参数,也是一个字符串,定义了Cookie的内容。也就是我们希望网页在用户的机器上标识的文件内容。

  接下来一行:cookie.setMaxAge(10),调用了Cookie中的setMaxAge方法,设定Cookie在用户机器硬盘上的存活期为 10秒。一个Cookie在用户的硬盘里面存在的时间并不是无限期的,在建立Cookie对象的时候,我们必须制定Cookie的存活期,超过了这个存活期后,Cookie文件就不再起作用,会被用户的浏览器自行删除。如果我们希望用户在下次访问这个页面的时候,Cookie文件仍然有效而且可以被网页读出来的话,我们可以将