ฉันกำลังประสบปัญหากับ LDAP มันค่อนข้างแปลก เว็บเซิร์ฟเวอร์ของฉันคือ IIS7.5 (windows server 2008 R2) มันถูกกำหนดค่าให้ใช้ windows Authentication ฉันวางหน้า asp ของฉันไว้ด้านล่าง
เว็บเบราว์เซอร์คือ IE8 ได้เพิ่มเว็บไซต์ในโซนอินทราเน็ตและเปิดใช้งานการส่ง รายละเอียดผู้ใช้หากโซนอินทราเน็ตในแท็บความปลอดภัย -> ระดับที่กำหนดเอง การรับรองความถูกต้องของ Windows แบบรวมถูกเปิดใช้งานในแท็บขั้นสูง
ทุกอย่างทำงานได้ดีเป็นเวลา 20 นาที (การตั้งค่าเวลาเซสชันและการตั้งค่าการหมดเวลาเริ่มต้นอื่น ๆ คือ 20 นาที) หลังจากผ่านไป 20 นาที ฉันได้รับข้อผิดพลาดรันไทม์ ASP ซึ่งระบุว่าไม่รองรับวิธีการหรือคุณสมบัติ memberOf สำหรับวัตถุ objUser เมื่อฉันได้รับข้อผิดพลาดด้านล่าง ฉันจะเปลี่ยนประเภทการรับรองความถูกต้องเป็นการรับรองความถูกต้องพื้นฐาน มันแจ้งให้ระบุข้อมูลรับรอง Windows และทำงานได้ดี หลังจากนั้นฉันก็เปลี่ยนกลับไปใช้การรับรองความถูกต้องของ windows อีกครั้ง และมันได้ผลในบางครั้ง
ไม่แน่ใจว่า IIS7.5 id กำหนดค่าด้วยการเปิดใช้งานการรับรองความถูกต้องพื้นฐานและ IE8 ที่กำหนดค่าไว้ข้างต้นหรือไม่ แต่ทำไมจึงแจ้งเตือนให้ใส่ windows Credential แม้ว่าโหมดการรับรองความถูกต้องของ windows จะไม่พร้อมท์ให้ใส่ข้อมูลรับรอง แต่ก็ใช้งานได้ดีแต่ในช่วงระยะเวลาหนึ่ง ใครช่วยอธิบายฉันหน่อยได้ไหมว่าทำไมพฤติกรรมแปลก ๆ และวิธีแก้ปัญหานี้เพื่อแก้ไขปัญหานี้
<%@ LANGUAGE="VBSCRIPT" %>
<%
Option Explicit
Dim oADSysInfo
Dim objUser
Dim strGroupData
Dim strUserDN
Dim arrGroups
Dim strGroup
Dim wsObject
Dim netSys
Dim strUsrDomain
strGroupData = ""
Set wsObject = CreateObject("WScript.Shell")
Set netSys = CreateObject("WScript.Network")
strUsrDomain = netSys.UserDomain
Set oADSysInfo = CreateObject("ADSystemInfo")
If err.number <> 0 Then
'getLDAPGroupInfo = strGroupData
'wsObject.popup("Error"& e.decription)
'Exit Function
End If
strUserDN = oADSysInfo.UserName
Set objUser = GetObject("LDAP://"& strUserDN)
arrGroups = objUser.memberOf
If IsEmpty(arrGroups) Then
'Wscript.Echo "Member of no groups"
ElseIf (TypeName(arrGroups) = "String") Then
'Wscript.Echo "Member of group " & arrGroups
strGroupData = arrGroups
Else
For Each strGroup In arrGroups
strGroupData = strGroupData & "," & strGroup
Next
'strGroupData = arrGroups
End If
Response.Write(strGroupData)
%>