เวลาหมดอายุเซสชันเริ่มต้นใน asp คือ 20 นาที ซึ่งไม่เพียงพอในหลายกรณี วันนี้มีลูกค้าร้องขอให้เข้าสู่ระบบอีกครั้ง ดังนั้นฉันจึงเตรียมบทความนี้ไว้เพื่อความสะดวกของเพื่อน ๆ ที่ต้องการ เวลาหมดอายุไม่ได้ถูกกำหนดไว้ในโปรแกรม ดังนั้นเวลาจะถูกดำเนินการตามเวลาหมดอายุที่กำหนดโดย IIS เวลาหมดอายุของเซสชันเริ่มต้นใน IIS คือ 20 นาที สามารถเปลี่ยนแปลงได้
ควรวางการตั้งค่าเวลาไว้ก่อน
ตัวอย่างเช่น
คัดลอกรหัสรหัสดังต่อไปนี้:
Session.Timeout=30 'SEESION ใช้ได้เป็นเวลา 30 นาที
เซสชั่น(ID)=Rs(id)
เซสชั่น(ชื่อ)=Rs(ชื่อ)
เซสชั่น(ผ่าน)=Rs(ผ่าน
ใช้คุณสมบัติ Session.Timeout เพื่อกำหนดระยะเวลาการหมดเวลา
สำหรับผู้ใช้ที่ล็อกอินเข้าสู่แอปพลิเคชัน ASP หากผู้ใช้ไม่ดำเนินการอื่นใดภายในเวลาเริ่มต้นของระบบ เซสชันของผู้ใช้จะถูกเพิกถอนโดยอัตโนมัติเมื่อถึงเวลาที่ตั้งไว้ ดังนั้นจึงป้องกันไม่ให้ทรัพยากรระบบสูญเปล่า คุณสมบัติ TimeOut ของวัตถุเซสชันสามารถใช้เพื่อตั้งเวลาหมดอายุเป็นนาที รูปแบบการตั้งค่าคือ:
คัดลอกรหัสรหัสดังต่อไปนี้:
Session.TimeOut=เวลาสูงสุด
โค้ดตัวอย่าง: หน้า (5.asp) ตัวอย่างนี้แสดงวิธีการควบคุมการสิ้นสุดเซสชัน
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@ ภาษา=vbscript %>
<% session.timeout=60 %>
<html>
<head><title>ควบคุมเวลาสิ้นสุดของเซสชัน</title><head>
<ร่างกาย>
-
ใคร = Session.SessionID
CurrentPage=Request.ServerVariables(SCRIPT_NAME)
Response.AppendTolog ใคร & : & CurrentPage
Response.write <center>รหัสเซสชันของคุณคือ: & ใคร & <p>
Response.write เส้นทางของหน้าที่คุณกำลังเยี่ยมชมคือ: & CurrentPage & <p>
ถ้า Session(I)= แล้ว
เซสชั่น(i)=1
อื่น
เซสชั่น(i)=เซสชั่น(i)+1
สิ้นสุดถ้า
เซสชั่นละทิ้ง
Response.write หน้านี้ได้รับการรีเฟรช & เซสชัน (i) และเวลาโดยคุณ </ศูนย์>
-
ในแอปพลิเคชัน Asp.net ผู้คนจำนวนมากจะพบกับข้อขัดแย้งในการตั้งค่าการหมดอายุของเซสชัน มีสี่วิธีในการกำหนดเวลาหมดอายุของเซสชัน:
1. ระดับเว็บไซต์ทั่วโลก (เช่น เซิร์ฟเวอร์)
IIS-เว็บไซต์-คุณสมบัติ-Asp.net-แก้ไขการกำหนดค่า-การจัดการสถานะ-การหมดเวลาเซสชัน (นาที)-ตั้งค่าเป็น 120 ซึ่งก็คือ 2 ชั่วโมง นั่นคือหากผู้ใช้ปัจจุบันไม่ทำงานหลังจาก 120 นาที เซสชันจะหมดอายุโดยอัตโนมัติ .
2. ระดับเว็บไซต์
IIS - เว็บไซต์ - เว็บไซต์เฉพาะ (เช่น DemoSite) - คุณสมบัติ - Asp.net มีสองตัวเลือกในขณะนี้ หนึ่งคือแก้ไขการกำหนดค่าส่วนกลาง และอีกทางหนึ่งคือแก้ไขการกำหนดค่า
หากคุณแก้ไขการกำหนดค่าส่วนกลาง จะเหมือนกับการกำหนดค่าก่อนหน้า
หากคุณแก้ไขการกำหนดค่า จะมีผลกับเว็บไซต์ปัจจุบันเท่านั้น เพราะเซิร์ฟเวอร์อาจมีเว็บไซต์อิสระมากมาย
1. เลือกการจัดการสถานะต่อไป - หมดเวลาเซสชัน (นาที) - ตั้งค่าเป็น 360 นั่นคือ 360 นาที เอฟเฟกต์จะเหมือนกับด้านบน แต่จะมีผลกับเว็บไซต์ปัจจุบันเท่านั้น
2. Identity Authentication-Forms-Coke หมดเวลา เลือก 12:00:00 ซึ่งก็คือ 12 ชั่วโมง มีแปดตัวเลือกให้เลือก:
00:15:00 น
00:30:00
01:00:00
02:00:00
04:00:00
08:00:00
12:00:00 น
1:00:00:00
นั่นคือสูงสุดคือ 24 ชั่วโมงและขั้นต่ำคือ 15 นาที นี่คือการกำหนดค่าเริ่มต้น สามารถปรับแต่งได้อย่างอิสระในแอปพลิเคชัน
3. ระดับการสมัคร
เช่นเดียวกับการจัดการเว็บไซต์ ยกเว้นขอบเขตที่จำกัดเฉพาะแอปพลิเคชันปัจจุบัน
4. ระดับหน้า
ในบางเพจ ให้ตั้งค่า Session.Timeout = 30 เพื่อแก้ไขเวลาหมดอายุเซสชันของเพจบางเพจเป็นการชั่วคราว
หากต้องการตรวจสอบเวลาหมดอายุของเซสชัน คุณสามารถใช้
คัดลอกรหัสรหัสดังต่อไปนี้:
TimeSpan SessTimeOut = TimeSpan ใหม่ (0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
TimeSpan SessTimeOut = TimeSpan ใหม่ (0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
ในบรรดาการตั้งค่าที่สองและสามจะแสดงใน Web.config:
คัดลอกรหัสรหัสดังต่อไปนี้:
ดู plaincopy ไปที่ clipboardprint หรือไม่
<?xml เวอร์ชัน=1.0?>
<การกำหนดค่า>
<system.เว็บ>
<โหมดการรับรองความถูกต้อง=แบบฟอร์ม>
<ชื่อฟอร์ม=AuthLogin loginUrl=/Login.aspx การป้องกัน=การหมดเวลาทั้งหมด=360 เลื่อนหมดอายุ=true/>
</การรับรองความถูกต้อง>
<โหมด sessionState=InProc cookieless=false หมดเวลา=20 />
</system.เว็บ>
<เส้นทางตำแหน่งที่ตั้ง=Login.aspx>
<system.เว็บ>
<การอนุญาต>
<อนุญาตให้ผู้ใช้=* />
</การอนุญาต>
</system.เว็บ>
</ตำแหน่ง>
</การกำหนดค่า>
<?xml เวอร์ชัน=1.0?>
<การกำหนดค่า>
<system.เว็บ>
<โหมดการรับรองความถูกต้อง=แบบฟอร์ม>
<ชื่อฟอร์ม=AuthLogin loginUrl=/Login.aspx การป้องกัน=การหมดเวลาทั้งหมด=360 เลื่อนหมดอายุ=true/>
</การรับรองความถูกต้อง>
<โหมด sessionState=InProc cookieless=false หมดเวลา=20 />
</system.เว็บ>
<เส้นทางตำแหน่งที่ตั้ง=Login.aspx>
<system.เว็บ>
<การอนุญาต>
<อนุญาตให้ผู้ใช้=* />
</การอนุญาต>
</system.เว็บ>
</ตำแหน่ง>
</การกำหนดค่า>
ลำดับความสำคัญของการตั้งค่าสี่รายการข้างต้นคือระดับเพจ > ระดับแอปพลิเคชัน > ระดับเว็บไซต์ > ระดับเซิร์ฟเวอร์ กล่าวอีกนัยหนึ่ง หากตั้งค่าหน้าเว็บเป็น 20 นาที และเว็บไซต์ตั้งค่าเป็น 120 นาที เห็นได้ชัดว่า 20 นาทีเป็นเวลาหมดอายุที่มีผล
อีกประเด็นที่น่าสังเกต
ในการตั้งค่าที่สอง ให้ตั้งค่าการหมดเวลาเซสชัน (SessionState) เป็น 120 นาที และใช้การรับรองความถูกต้องของแบบฟอร์มในเวลาเดียวกัน ตั้งค่าเป็น 00:15:00 ซึ่งเท่ากับ 15 นาที และเลื่อนหมดอายุเป็นเท็จ ค่าหมดอายุเซสชันจริงคืออะไร เวลาที่มีผล?
ผลลัพธ์ที่ถูกต้องคือการตั้งค่า SessionState ซึ่งก็คือ 120 นาที
หากมีการตั้งค่าเวลาหมดอายุของเซสชันไว้แต่ไม่มีผล โปรดตรวจสอบการกำหนดค่าข้างต้น
วิธีการอื่นๆ ที่พบได้ทางออนไลน์
1. ระบบปฏิบัติการ: Windows Server 2003
ขั้นตอน: เริ่ม -> เครื่องมือการดูแลระบบ -> ตัวจัดการบริการข้อมูลทางอินเทอร์เน็ต (IIS) -> เว็บไซต์ -> เว็บไซต์เริ่มต้น -> คลิกขวาที่คุณสมบัติ -> โฮมไดเร็กทอรี -> การกำหนดค่า -> ตัวเลือก -> เปิดใช้งานสถานะเซสชัน -> การหมดเวลาของเซสชัน (ที่นี่ ตั้งค่าการหมดเวลาที่คุณต้องการเป็นนาที) ตกลง.
2. การตั้งค่าเวลาหมดอายุของเซสชันในแอปพลิเคชัน ASP.NET
ในแอปพลิเคชันบนเว็บ เช่น ASP.NET เซสชันเป็นวิธีการทั่วไปที่ใช้ในการบันทึกสถานะผู้ใช้ อย่างไรก็ตาม เนื่องจากพื้นที่หน่วยความจำของเซิร์ฟเวอร์มีจำกัด จึงจำเป็นต้องตั้งค่าเวลาหมดอายุของเซสชัน จะตั้งเวลาหมดอายุของเซสชันใน ASP.NET ได้อย่างไร ง่ายมาก เพียงแก้ไขการกำหนดค่า web.config
วิธีการแก้ไขเฉพาะมีดังนี้ กำหนดค่าดังนี้ใน web.config
คัดลอกรหัสรหัสดังต่อไปนี้:
<system.เว็บ>
<โหมด sessionState=การหมดเวลา InProc=30/>
</system.เว็บ>
สิ่งนี้หมายถึงคือเวลาหมดอายุของเซสชันคือ 30 นาที กล่าวคือ หากผู้ใช้ปัจจุบันไม่ทำงานหลังจาก 30 นาที เซสชันจะหมดอายุโดยอัตโนมัติ
3. ในหน้า cs ที่เรียกเซสชัน ให้เขียนข้อความต่อไปนี้ในเหตุการณ์โหลด
คัดลอกรหัสรหัสดังต่อไปนี้:
เซสชันหมดเวลา = 30;
4. จัดเก็บเซสชันในบริการสถานะ asp.net
คัดลอกรหัสรหัสดังต่อไปนี้:
<sessionState cookieless=false หมดเวลา =โหมด 480=StateServer stateConnectionString=tcpip=127.0.0.1:42424 sqlConnectionString=แหล่งข้อมูล=127.0.0.1;id ผู้ใช้=sa;รหัสผ่าน= />