現在ログインしているユーザーの名前と電子メール アドレスを取得する VBScript ファイルを作成しています。一部のソリューションでは、LDAP 検索を実行するためにハードコードされたユーザー名/パスワードが必要ですが、そうでないソリューションもあります。
各方法の長所/短所は何ですか?
オプション 1: LDAP ユーザー名/パスワード ソースなし
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName) ' Currently logged in User
Response.Write("Email: " & objUser.mail)
オプション 2: ハードコーディングされた LDAP ユーザー名/パスワード ソース
strUsername = split(Request.ServerVariables("LOGON_USER"),"\")(1)
Set rootDSE = GetObject("LDAP://RootDSE")
Set oConn = CreateObject("ADODB.Connection")
sDomainContainer = rootDSE.Get("defaultNamingContext")
oConn.Provider = "ADSDSOObject"
oConn.properties("user id") = sLdapReaderUsername
oConn.properties("password") = sLdapReaderPassword
oConn.Open "ADs Provider"
sQuery = "<LDAP://" & sDomainContainer & ">;(sAMAccountName=" & strUsername & ");adspath,mail,displayName,sAMAccountName;subtree"
Set userRS = oConn.Execute(sQuery)
If NOT userRS.EOF AND NOT err Then Response.Write(userRS("mail"))