Hình thức hết thời gian xác thực so với thời gian chờ sessionState


139

Tôi có mã mà tôi đang xem qua về thời gian phiên ngoài trang web. Trong web.config tôi đã xem qua mã này.

 <authentication mode="Forms">
  <forms loginUrl="~/Auth/SignOn.aspx" timeout="40" slidingExpiration="true" />
</authentication>

<sessionState timeout="30" />

Có ai biết nếu một người có tiền lệ hơn người kia, và họ khác nhau như thế nào. Cảm ơn.


Câu trả lời:


226

Chúng là những thứ khác nhau. Giá trị Hết giờ xác thực biểu mẫu đặt lượng thời gian tính bằng phút mà cookie xác thực được đặt thành hợp lệ, nghĩa là sau valuesố phút, cookie sẽ hết hạn và người dùng sẽ không còn được xác thực nữa, họ sẽ được chuyển hướng đến đăng nhập trang tự động. Các slidingExpiration=truegiá trị được về cơ bản nói rằng miễn là người dùng thực hiện một yêu cầu trong phạm vi giá trị thời gian chờ, họ sẽ tiếp tục được chứng thực (chi tiết ở đây ). Nếu bạn đặt slidingExpiration=falsecookie xác thực sẽ hết hạn sau valuesố phút bất kể người dùng có đưa ra yêu cầu trong giá trị hết thời gian hay không.

Các SessionStatebộ giá trị timeout số lượng thời gian một nhà cung cấp phiên Nhà nước là cần thiết để dữ liệu giữ trong bộ nhớ (hoặc bất kỳ cửa hàng quay lại đang được sử dụng, SQL Server, OutOfProc, vv) cho một phiên đặc biệt. Ví dụ: nếu bạn đặt một đối tượng vào Phiên sử dụng giá trị trong ví dụ của mình, dữ liệu này sẽ bị xóa sau 30 phút. Người dùng vẫn có thể được xác thực nhưng dữ liệu trong Phiên có thể không còn nữa. Các Session Timeoutgiá trị luôn được thiết lập lại sau khi mọi yêu cầu.


26
Một cách làm rõ: Hết thời gian xác thực mẫu đặt thời gian hết hạn cho không nhất thiết phải cho cookie nơi vé có thể được lưu trữ. Cookie có thể hoàn toàn không có thời gian hết hạn (được gọi một cách khó hiểu là cookie phiên, có nghĩa là nó tồn tại cho đến khi người dùng đóng trình duyệt) hoặc thậm chí có thể không có cookie (xác thực mẫu "không nấu ăn"). Trong trường hợp cookie liên tục, xác thực mẫu đặt hết hạn cookie và hết hạn vé cùng một lúc.
bmode

13
Một cách làm rõ khác từ MSDN: "Để ngăn chặn hiệu suất bị xâm phạm và để tránh nhiều cảnh báo trình duyệt cho người dùng đã bật cảnh báo cookie, cookie được cập nhật khi hơn một nửa thời gian đã chỉ định." Vì vậy, thời gian chờ cookie chỉ được đặt lại nếu quá một nửa. Do đó, đề xuất đặt nó thành gấp đôi thời gian chờ phiên.
user917170

21

Về cơ bản, giá trị trượtExpirst = true nói rằng sau mỗi yêu cầu được thực hiện, bộ hẹn giờ được đặt lại và miễn là người dùng thực hiện yêu cầu trong giá trị thời gian chờ, anh ta sẽ tiếp tục được xác thực.

Điều này LAF không đúng. Thời gian chờ cookie xác thực sẽ chỉ được đặt lại nếu một nửa thời gian chờ đã hết.

Xem ví dụ https://support.microsoft.com/de-ch/kb/910439/en-us hoặc https://itworksonmymachine.wordpress.com/2008/07/17/forms-authentication-timeout-vs-session -hết giờ/


18

Từ những gì tôi hiểu họ độc lập với nhau. Bằng cách giữ thời gian chờ phiên nhỏ hơn hoặc bằng thời gian chờ xác thực, bạn có thể đảm bảo mọi biến số phiên cụ thể của người dùng không được duy trì sau khi hết thời gian xác thực (nếu đó là mối quan tâm của bạn, mà tôi nghĩ là bình thường khi hỏi điều này câu hỏi). Tất nhiên, bạn sẽ phải xử lý thủ công các biến phiên khi đăng xuất.

Đây là một câu trả lời phù hợp có thể trả lời câu hỏi của bạn hoặc ít nhất là chỉ cho bạn đi đúng hướng:


7

Sự khác biệt là một (hết thời gian biểu mẫu) phải thực hiện với việc xác thực người dùng và khác (hết thời gian phiên) phải thực hiện với thời gian lưu trữ dữ liệu được lưu trong bộ nhớ cache trên máy chủ. Vì vậy, chúng là những thứ rất độc lập, vì vậy người này không được ưu tiên hơn người khác.


5
      <sessionState timeout="2" />
      <authentication mode="Forms">
          <forms name="userLogin" path="/" timeout="60" loginUrl="Login.aspx" slidingExpiration="true"/>
      </authentication>

Cấu hình này sẽ gửi tôi đến trang đăng nhập cứ sau hai phút, dường như mâu thuẫn với các câu trả lời trước đó


1
Điều đó có thể xảy ra nếu thông tin liên quan đến đăng nhập được lưu trữ trong các biến của phiên và khi xóa, nó sẽ chuyển hướng đến thông tin đăng nhập. Vì vậy, nó phụ thuộc vào mã?
Steve

0

Đối với bất kỳ ai vấp phải câu hỏi này, hãy tham khảo tài liệu này từ MS - nó có các chi tiết thực sự tốt về cài đặt Hết giờ của FormsAuthentication.

Tài liệu này giải thích chi tiết về bmode bình luận được đưa ra trong Câu trả lời được chấp nhận - về Cookie liên tục (Phiên so với hết hạn)

https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-security/intributiontion/forms-authentication-configuration-and-advified-topics-cs#specifying-the-tickets- thời gian chờ

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.