0

2 段階ログインのシステムを使用しています。

ステージ 1 は、私のシステムを使用している会社を識別する会社のログインです。ステージ 2 は、上記の会社に所属するスタッフのメンバーがログインするスタッフ ログインです。

どちらの段階でも、特定のログイン詳細を保存するオプションが提供されます (場所/会社、パスワードは保存されません)。

ユーザーは、必要に応じて会社のログイン Cookie を設定できますが、スタッフの Cookie は設定できません。会社の Cookie なしでスタッフの Cookie を設定する必要はありません。

データベースチェックなどの中で、ステージ1のログインはこれを行います:

 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

次に、ステージ 2 でこれを行います。

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