2015-05-05 25 views
5

Tôi không sử dụng phiên, vì vậy tôi đã xóa nó cùng với tất cả các mô-đun HTTP mà tôi không cần.AntiForgeryToken có yêu cầu trạng thái phiên không?

đôi khi tôi nhận được lỗi này: System.Web.Mvc.HttpAntiForgeryException: The anti-forgery token could not be decrypted. If this application is hosted by a Web Farm or cluster, ensure that all machines are running the same version of ASP.NET Web Pages and that the <machineKey> configuration specifies explicit encryption and validation keys. AutoGenerate cannot be used in a cluster.

Hoặc cái này: System.Web.Mvc.HttpAntiForgeryException: The provided anti-forgery token was meant for a different claims-based user than the current user.

Khi tôi kích hoạt phiên, nó hoạt động.

Vì vậy, câu hỏi đặt ra là: công cụ csrf có phụ thuộc vào trạng thái phiên không?

+0

Bạn có chắc chắn rằng nhà cung cấp dịch vụ lưu trữ được chia sẻ lưu trữ ứng dụng của bạn chỉ trên một máy chủ web không? – lowleveldesign

+0

@lowleveldesign Tôi không chắc chắn. Nhưng khá thuyết phục, vì tên máy chủ luôn giống nhau trong nhật ký của tôi, như là IP. –

+0

và tên miền nào đặt cookie csrf? Bạn có đang sử dụng tên miền phụ duy nhất của mình không? Nếu không, ứng dụng của bạn có thể nhận cookie từ ứng dụng .NET khác đang chạy trên cùng miền gốc. – lowleveldesign

Trả lời

6

Phiên ASP.NET không bắt buộc đối với mã thông báo chống giả mạo hoạt động. Mã thông báo được lưu trữ trong trường biểu mẫu ẩn và trong cookie, tách biệt với phiên cookie (bạn có thể tìm thấy chi tiết here). Ngoài ra, khi mã thông báo chống giả mạo không hợp lệ, ngoại lệ được ném sao cho nó không giống như vấn đề bạn có được kết nối với mã thông báo chống giả mạo. Có thể ghi lại một phiên Fiddler, đính kèm nó vào một câu hỏi SO mới và chúng ta sẽ có thể hướng dẫn bạn tốt hơn.

+0

Trường hợp ngoại lệ luôn bị ném khi bạn gặp phải "đăng nhập đôi" hoặc đó là vấn đề riêng biệt? – lowleveldesign

+0

Tôi chấp nhận câu trả lời này vì câu trả lời trực tiếp câu hỏi gốc. Nhưng vấn đề vẫn còn, vì vậy tôi sẽ mở một câu hỏi riêng biệt như bạn đề nghị. –

Các vấn đề liên quan