如何在浏览器关闭之后保留用户登录状态

uno 2004-01-08 09:32:45
关闭之后重启浏览器
Session的ID是不是就不一样了

用户登录状态是以Session为依据的

如何保留用户登录状态——就是当客户端再次打开浏览器时仍能获取上次登录(未退出)时的状态

是不是通过手动创建FormsAuthenticationTicket并传送至客户端Cookie?

具体方法不太清楚
请指教
...全文
1133 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzb7811 2004-01-08
  • 打赏
  • 举报
回复
使用Cookie
uno 2004-01-08
  • 打赏
  • 举报
回复
搞定了
多谢各位的帮忙
ZXYSOSO 2004-01-08
  • 打赏
  • 举报
回复
再修改一下
HttpCookie cookie1 = Request.Cookies["SclAuth"];
if (cookie1!=null)
{
this.Response.Write(cookie1.Value.ToString());
}
else
{
string test="testzxy";
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(0, "*", DateTime.Now, DateTime.Now.AddMinutes(20), true, test, FormsAuthentication.FormsCookiePath);
HttpCookie cookie = new HttpCookie("SclAuth", FormsAuthentication.Encrypt(ticket));
this.Response.SetCookie(cookie);
}
this.Response.Redirect("webform1.aspx", true);
ZXYSOSO 2004-01-08
  • 打赏
  • 举报
回复
uthenticationTicket(0, "*", DateTime.Now, DateTime.Now.AddMinutes(20), true,"test", FormsAuthentication.FormsCookiePath);
HttpCookie cookie = new HttpCookie("SclAuth", FormsAuthentication.Encrypt(ticket));
this.Response.Cookies.Add(cookie);

HttpCookie cookie1 = Request.Cookies["SclAuth"];
this.Response.Write(cookie1.Value.ToString());//显示cookie1的值

this.Response.Redirect("webform1.aspx", true);
hoge66 2004-01-08
  • 打赏
  • 举报
回复
<!-- 会话状态设置
默认情况下,ASP.NET 使用 cookie 标识哪些请求属于特定的会话。
如果 cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
若要禁用 cookie,请设置 sessionState cookieless="true"。
-->
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" />
QinMuBiao 2004-01-08
  • 打赏
  • 举报
回复
同意楼上的说法,密切关注。
acewang 2004-01-08
  • 打赏
  • 举报
回复
不用你手动生成验证票
web.config中你设定了访问路径的权限,第一次登陆,登陆页面登陆事件里:
if (CustomMethod(userName,Password))
{
string url=FormsAuthentication.GetRedirectUrl(userName,true);//永久cookie
//修改设定的50年过期
Response.Redirect(url);
}
下次登陆就不会验证
ga3ga3 2004-01-08
  • 打赏
  • 举报
回复
关闭后Session就无效了
但是Cookie就行。
就像bbs,登陆时候可以保存1个月,年等
下次登陆就直接进去的。


用cookie!!
shenanigan 2004-01-08
  • 打赏
  • 举报
回复
建议使用cookies
uno 2004-01-08
  • 打赏
  • 举报
回复
好像不行

浏览器关闭之后cookie就取不到了

是我的代码有误吗?

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(0, "*", DateTime.Now, DateTime.Now.AddMinutes(20), true, "test", FormsAuthentication.FormsCookiePath);
HttpCookie cookie = new HttpCookie("SclAuth", FormsAuthentication.Encrypt(ticket));
this.Response.SetCookie(cookie);
this.Response.Redirect(..., true);
liuyong_lll 2004-01-08
  • 打赏
  • 举报
回复
使用Cookie吧!!!!!!!虽然它的安全性不是很好...:)
chinanewway 2004-01-08
  • 打赏
  • 举报
回复
还是用cookie吧
commandio 2004-01-08
  • 打赏
  • 举报
回复
cookie
acewang 2004-01-08
  • 打赏
  • 举报
回复
用forms验证的话用我说的方法它会自动读取cookie验证身份
houjianxun 2004-01-08
  • 打赏
  • 举报
回复
这样的要求,建议使用Cookie
acewang 2004-01-08
  • 打赏
  • 举报
回复
你是用的Forms验证吗?要是forms验证实现起来不是很难
uno 2004-01-08
  • 打赏
  • 举报
回复
然后在会话重新创建时读取cookie吗?
acewang 2004-01-08
  • 打赏
  • 举报
回复
你可以在登陆验证时FormsAuthentication.RedirectFromLoginPage(userName,True)
这样可以颁发一个永久性验证Cookie 这个Cookie可以保持状态50年
//好像太长了点,你也可以修改

???2008 2004-01-08
  • 打赏
  • 举报
回复
是的,写一个cookie放在客户端。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧