• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

如何凭借已创建的用户登录身份的Cookie验证判断出用户的登录状态?

GemTony 武汉大学计算机学院 高级职员  2021-01-02 02:45:42
登录时已经通过后台程序创建了用户登录身份的Cookie,再次打开网页时如何依据用户登录身份的Cookie进行验证判断出用户的登录状态?


//获取用户的角色
string userdata = txtID.Value;

// 创建身份验证票证
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, txtID.Value, DateTime.Now, DateTime.Now.AddMinutes(360), true, userdata);

string encryptedTicket = FormsAuthentication.Encrypt(authTicket);

// 创建Cookie
HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);

Response.Cookies.Remove("authCookie");

Response.Cookies.Add(authCookie);

...全文
15379 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
肖无疾 01-05
引用 7 楼 GemTony 的回复:
name=".ASPXAUTH" 这里还有一个疑问,这里的属性值不应该是name=".ASPX" 吗?
这个名字可以自己定的,主要用于和其它项目区别,比如一个网站下面有两个虚拟目录,一个前台,一个后台,名字用不一样的就可以防止同时登录的情况。
回复
肖无疾 01-04
去了

 <authentication mode="Forms">
<forms loginUrl="~/Account/Login" name=".ASPXAUTH" />
    </authentication>
回复
GemTony 01-04
引用 3 楼 一箭隔世 的回复:
使用表单身份验证后,不需要你自己判断Cookie了 https://www.cnblogs.com/lxhbky/archive/2019/09/23/11572916.html
这篇文章讲的配置web.config中,关于设置<deny users="?"></deny>,在Framework4.5版本下提示无效,应该写成<forms ...></forms>,中间的属性应如何写? 原文:

<authenticationmode="Forms">
     <forms loginUrl="Login.aspx" name=".ASPX"></forms>
      <denyusers="?"></deny>
 </authentication>
回复
GemTony 01-04
name=".ASPXAUTH" 这里还有一个疑问,这里的属性值不应该是name=".ASPX" 吗?
回复
cookie并不持久化保存,并且cookie实际上每一次随网页访问服务器而发送也不安全。

当你的服务器端确认某个用户登录之后,你可以动态产生某个编码,然后随网页刷新而在浏览器端通过 js 写入 localStorage(这是 html5 标准)。这样当下一次浏览器端展示网页时,你的 js 代码完全可以将本地保存的编码读取出来,赋值给网页(例如某个 hidden input)。

也就是说,html5标准,废弃 cookie,用持久化存储机制。
回复
肖无疾 01-03
使用表单身份验证后,不需要你自己判断Cookie了 https://www.cnblogs.com/lxhbky/archive/2019/09/23/11572916.html
回复
GemTony 01-02
还是不明白,能写的更具体些吗?如何获取本地的Cookies判断是否登录?
回复
肖无疾 01-02
判断是否登录 User.Identity.IsAuthenticated 获取你的那个userdata User.Identity.Name
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2021-01-02 02:45
社区公告
暂无公告