Tôi đang mất ASP.NET_SessionId khi chuyển đổi giữa các trang trên trang web của mình. Sự cố xảy ra trong Chrome/Firefox/Safari. Nó không xảy ra trong IE. Khá kỳ lạ ... đây là kịch bản của tôi.ASP.NET_SessionId bị thiếu
Trang web của tôi có thể được truy cập bằng cách nhập www.example.org hoặc example.org trong trình duyệt (đây là một phần thông tin quan trọng như bạn sẽ thấy).
Tôi nhập example.org. Từ trang chủ của tôi, tôi đăng nhập vào trang web của mình (lưu ý: Tôi không sử dụng xác thực biểu mẫu ASP.NET). Tôi được gửi tới trang người dùng mặc định của mình (ví dụ: userpage.aspx). Từ trang này, tôi nhấp vào một số <a>
gửi tôi đến một trang khác trên trang web của tôi. Liên kết <a>
đủ điều kiện (ví dụ: http://www.example.org/page2.aspx). Khi tôi được gửi đến trang mới, phiên của tôi bị mất!
Vì vậy, tôi đã chạy Fiddler để thử và khám phá vấn đề. Điều tôi thấy thú vị. Thẻ Tiêu đề yêu cầu Người giới thiệu bị mất giữa các trang.
Sau đây là các bước sau:
- Đến example.org.
- Đăng nhập vào example.org.
- Tôi được chuyển hướng đến userpage.aspx. Người giới thiệu là http://example.org. ASP.NET_SessionId được thiết lập.
- Tôi nhấp vào
<a>
(ví dụ: http://www.example.org/page2.aspx). Sau khi trang được hiển thị, ASP.NET_SessionId bị mất.
Mất ASP.NET_SessionId nhất quán là Chrome/Firefox/Safari. Điều này không xảy ra trong IE.
Nếu lặp lại các bước trên bằng cách thay thế example.org bằng www.example.org, ASP.NET_SessionId sẽ không bị mất. Nó hoạt động, chính xác mỗi lần.
Bất kỳ suy nghĩ nào về hành vi này?
trong fiddler là cookie được gửi qua trong mọi trường hợp hay không? –
những gì bạn đang cố gắng trong mã page2 phía sau? và bạn đang sử dụng chế độ trạng thái phiên InProc? –