如何在经典asp中显示活动目录中的照片

时间:2012-07-06 13:50:51

标签: asp-classic active-directory photos

如何在经典asp中显示活动目录中的照片? 我可以从calssic asp页面登录我们的AD并查询用户名电话等。缩略图照片字段只返回一个字符串,我如何格式化为经典asp中的diaplay照片?

4 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您将使用FileSystemObject以二进制形式获取图像文件,并在返回图像数据时使用response.contenttype = "image/jpeg",以便将内容呈现为图像。

答案 1 :(得分:0)

您还可以在图片中内嵌渲染照片:

... img src = [图像的base64演示]> ...

HTML image tag with base64 string (data URI)

答案 2 :(得分:0)

您可以使用html img标记来完成。例如:

<img src="<%=myPhotoUrl%>">

在asp代码块中,您必须将其声明为:

<%
    Response.Write "<img src=""" & myPhotoUrl & """>"
%>

答案 3 :(得分:0)

所以我提出的答案是:     strUsername = request.querystring(“req”)     strUserRole = request.querystring(“rol”)

Set objDomain = GetObject ("GC://rootDSE")
objADsPath = objDomain.Get("defaultNamingContext")
Set objDomain = Nothing
Set con = Server.CreateObject("ADODB.Connection")
con.provider ="ADsDSOObject"
con.Properties("User ID") = "XXXXXXXXXXX"
con.Properties("Password") = "XXXXXXXXXXXXXXX"
con.Properties("Encrypt Password") = False
con.open "Active Directory Provider"
Set Com = CreateObject("ADODB.Command")
Set Com.ActiveConnection = con
Com.CommandText ="select name,telephonenumber,mail,thumbnailPhoto, Department, title FROM 'GC://"+objADsPath+"' where sAMAccountname='"+strUsername+"'"

Set rs = Com.Execute
if not rs.eof then
 tmpphoto=rs("thumbnailPhoto")
 tmpdept=rs("Department")
 tmptitle=rs("title") 
 name=rs("name")
 telephonenumber=rs("telephonenumber")
 mail=rs("mail") 
 NameArr = Split(name, " ")
 cname = NameArr(0)
 sname = NameArr(1)
rs.Close
con.Close
Set rs = Nothing
Set con = Nothing

 %>
 <div id="card"><img src="badge.jpg"  width="100%"/>
<div id="personname"><%=cname & " " & sname%></div>
<div id="persongroup"><%=tmptitle%></div>
<div id="persondept"><%=tmpdept%></div>
<div id="personrole"><%=strUserRole%></div>
<div id="personimage">  
    <img src="getaduserimage.asp?req=NAME.SURNAME" width="100" height="100" frameborder="0" scrolling="no" />

</div>
<div id="logoimage"><img src="OUR_logo_white_small.png"  width="100"/></div>
<%
 else 
   cname = strUsername & " Not found"
end if


%>

<% 'getaduserimage.asp file contains:
strUsername = request.querystring("req")
Set objDomain = GetObject ("GC://rootDSE")
objADsPath = objDomain.Get("defaultNamingContext")
Set objDomain = Nothing
Set con = Server.CreateObject("ADODB.Connection")
con.provider ="ADsDSOObject"
con.Properties("User ID") = "xxxxxx"
con.Properties("Password") = "xxxxxxxx"
con.Properties("Encrypt Password") = False
con.open "Active Directory Provider"
Set Com = CreateObject("ADODB.Command")
Set Com.ActiveConnection = con
Com.CommandText ="select thumbnailPhoto FROM 'GC://"+objADsPath+"' where sAMAccountname='"+strUsername+"'"

Set rs = Com.Execute
Response.Expires = 0  
Response.Buffer = TRUE  
Response.Clear  
Response.ContentType = "image/jpeg" 
'#### Assuming your images are jpegs 
if not rs.eof then
Response.BinaryWrite rs("thumbnailPhoto")  
else 
   response.write "image for " &  strUsername & " Not found"
end if
rs.Close
con.Close
Set rs = Nothing
Set con = Nothing
%>