0

現在ログインしているユーザーの名前と電子メール アドレスを取得する 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"))
4

1 に答える 1

1

LDAP サーバーの構成方法によって異なります。通常、プライベート属性にアクセスしないユーザーの匿名検索を許可するように構成されています。たとえば、属性をまったく持たない DN を返すだけです。次に、その DN とパスワードを使用して「バインド」し、認証を確立します。その後、自分の (ユーザーの) 属性すべてにアクセスできます。たとえば、「Hi Jim」などです。

于 2012-11-07T00:48:56.760 に答える