我有一个两阶段登录的系统。
第一阶段是公司登录,它使用我的系统识别公司。第二阶段是员工登录,属于上述公司的员工登录。
在这两个阶段都提供了一个选项来保存某些登录详细信息(位置/公司,但不是密码)
如果用户愿意,他们应该能够设置公司登录 Cookie,但不能设置员工 Cookie,没有公司 Cookie 就不需要设置员工 Cookie,尽管他们是否这样做并不重要!
第一阶段登录,在数据库检查等中这样做:
If SaveCookie Then
Dim loginCookie As New HttpCookie("LogInCompany")
loginCookie.Values("database") = Database
loginCookie.Values("savedKey") = SavedKey
loginCookie.Values("samCompanyId") = CompanyId
loginCookie.Values("samCompanyName") = Common.htmlDecode(CompanyName)
loginCookie.Expires = Date.Now.AddDays(7)
HttpContext.Current.Response.Cookies.Add(loginCookie)
End If
然后第二阶段执行此操作:
If SaveCookie Then
Dim loginCookie As New HttpCookie("LogInStaff")
loginCookie.Values("locationId") = locationID
loginCookie.Expires = Date.Now.AddDays(7)
HttpContext.Current.Response.Cookies.Add(loginCookie)
End If
显然它们是完全独立的函数,所以我不认为变量命名相同是问题所在。
会发生什么:
- 公司登录成功 > 公司 Cookie 已保存,用户继续
- 用户登录 用户登录 > 用户 Cookie 已保存,但公司 Cookie 已删除。
这是使用 Chrome,我没有检查其他浏览器,但 Chrome 对我来说是最重要的。
我知道这绝对是我在 Chrome 控制台中检查过的情况,根据上面的描述添加和删除了 Cookie。
有人可以帮助指出我在这里出错的地方吗?
编辑 - 这段代码没有错!
啊……在搞砸了一天之后,事实证明 Cookie 被一个意外的、并在不同但相关的代码部分中捕获的错误清除了!如果需要,这个问题可以关闭,或者离开......?