私はLDAPの問題に直面しています。これは少し奇妙なものです。私の Web サーバーは IIS7.5 (windows サーバー 2008 R2) です。Windows認証を使用するように構成されています。以下に自分のaspページを貼り付けました。
Web ブラウザは IE8 です。Web サイトをイントラネット ゾーンに追加し、送信を有効にしました。セキュリティ タブのイントラネット ゾーンの場合、ユーザーの詳細 -> カスタム レベル。Intigrated Windows 認証は、詳細設定タブで有効になっています。
すべてが 20 分間正常に動作します (セッション時間の設定とその他のデフォルトのタイムアウト設定は 20 分間です)。20 分後、ASP ランタイム エラーが発生します。オブジェクト objUser のメソッドまたはプロパティ memberOf はサポートされていません。以下のエラーが発生したら、認証タイプを基本認証に変更します。Windows 資格情報の入力を求めるプロンプトが表示され、正常に動作します。その後、再び Windows 認証に戻ります。そして、それはいつか働きます。
IIS7.5 id が基本認証を有効にして構成されていて、IE8 が上記のように構成されているかどうかはわかりませんが、Windows 資格情報の入力を求める理由はまだあります。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)
%>