2011-12-15 4 views
5

Tôi có ứng dụng ASP.NET MVC bằng cách sử dụng xác thực biểu mẫu. Dưới đây là những dòng mã mà tôi tạo ra các dấu hiệu auth:Mã xác thực liên tục hết hạn

FormsAuthentication.SetAuthCookie(username, true); 

web.config của tôi chứa:

<system.web> 
    <machineKey validationKey="{unique key}" decryptionKey="{unique key}" validation="SHA1" decryption="AES" /> 
    <authentication mode="Forms"> 
    <forms loginUrl="~/account/" timeout="2880" /> 
    </authentication> 
    ... 
</system.web> 
<location path="my"> 
    <system.web> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
    </system.web> 
</location> 

Mặc dù các tham số cho các cookie được thiết lập là true, người dùng của tôi thường xuyên bị thoát ra sau khi một vài ngày không hoạt động.

Ứng dụng được triển khai cho AppHarbor, nhưng tôi đã trải nghiệm cùng một hành vi khi được lưu trữ trên máy chủ chuyên dụng.

Tôi thiếu điều gì khiến người dùng bị đăng xuất một cách không thường xuyên?

Trả lời

3

Thời gian chờ của bạn được đặt là 2880 phút, tức là 48 giờ?

timeout được sử dụng để xác định một đời hạn chế cho phiên các hình thức xác thực. Giá trị mặc định là 30 phút. Nếu một cookie xác thực biểu mẫu liên tục được ban hành, thuộc tính timeout cũng được sử dụng để đặt thời gian tồn tại của cookie liên tục.

http://msdn.microsoft.com/en-us/library/ff647070.aspx

+0

Ah, tôi thấy rằng trong ASP.NET 1.1, thời gian chờ đã bị bỏ qua cho cookie liên tục, nhưng bắt đầu từ năm 2.0, nó được sử dụng cho các tập tin cookie dai dẳng quá. Duh. –

+0

Tôi đang thay đổi thời gian chờ thành 5259600 (60 phút/giờ * 24 giờ/ngày * 365,25 ngày/năm * 10 năm). –

+6

Bạn có chắc là đủ lâu không? –