0

我有一个两阶段登录的系统。

第一阶段是公司登录,它使用我的系统识别公司。第二阶段是员工登录,属于上述公司的员工登录。

在这两个阶段都提供了一个选项来保存某些登录详细信息(位置/公司,但不是密码)

如果用户愿意,他们应该能够设置公司登录 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 被一个意外的、并在不同但相关的代码部分中捕获的错误清除了!如果需要,这个问题可以关闭,或者离开......?

4

0 回答 0