如何凭借已创建的用户登录身份的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);

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

 <authentication mode="Forms">
<forms loginUrl="~/Account/Login" name=".ASPXAUTH" />
    </authentication>
GemTony 2021-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 2021-01-04
  • 打赏
  • 举报
回复
name=".ASPXAUTH" 这里还有一个疑问,这里的属性值不应该是name=".ASPX" 吗?
  • 打赏
  • 举报
回复
cookie并不持久化保存,并且cookie实际上每一次随网页访问服务器而发送也不安全。

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

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

62,041

社区成员

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

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

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

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