Es gibt Tools, die von mehreren tausend Mitarbeitern bei meiner Arbeit verwendet werden. Sie werden derzeit in SharePoint 2010 (in sehr kurzer Zeit für das Upgrade auf 2016) in einer Dokumentbibliothek gespeichert. Im Wesentlichen verwenden wir SP2010 als Webserver, so dass wir unserem Unternehmensbereich für unseren eigenen Webserver keine großen Kosten aufbürden mussten.Verwenden Sie .ASPX-Datei als serverseitigen Code über AJAX von HTML/Javascript-Client aufgerufen werden
Diese Tools basieren alle auf HTML und JavaScript. Ich versuche jedoch, die Sammlung von Datenpunkten zu automatisieren, die der Benutzer gerade manuell eingibt. Um dies zu tun, fand ich, dass der beste Weg wäre, den LDAP abzufragen, der immer serverseitiger Code sein wird, da es keine Möglichkeit gibt, das LDAP über den Browser abzufragen. Unten sehen Sie das JavaScript, das ich habe und die ASPX-Datei, die ich habe (abzüglich der Header, die Sharepoint automatisch erstellt). Ich sende einen AJAX-Aufruf an die ASPX-Datei mit einigen Daten in der URL, die benötigt werden, um die verbleibenden Daten aus dem LDAP zu erhalten. Was ich jedoch zurückbekomme, scheint buchstäblich ALLER Code zu sein, der vom Browser gespeichert wird, im Gegensatz zu der EINEN JSON-Variablen, die ich möchte.
Zuerst wird das JavaScript:
var ldapUserName;
var employee = {};
var ADSystem = new ActiveXObject("ADSystemInfo");
ldapUserName = ADSystem.UserName;
$.ajax({
type: "GET",
url: "http://my.url.where/i/am/storing/getEmp.aspx?username=" + ldapUserName,
success: function(data) {
employee = data;
alert(employee);
},
error: function() {
alert("Connection Failed");
}
});
Als nächstes wird die ASPX-Datei (minus der Sharepoint-Header, der automatisch hinzugefügt wird)
<%
Option Explicit
Response.LCID = 1043
%>
<!--#include file="jsonObject.class.aspx" -->
<%
Dim username
username = Request.QueryString("username")
empDemo(username)
Public Function empDemo(username)
'Create the Array that will be passed
Set JSON = New JSONobject
'Employee specific information
Set objUser = GetObject("LDAP://" & username)
JSON.Add "empNum", objUser.sAMAccountName
JSON.Add "fName", objUser.givenName
JSON.Add "lName", objUser.sn
JSON.Add "fullName", objUser.displayName
JSON.Add "ext", objUser.telephoneNumber
JSON.Add "title", objUser.title
JSON.Write()
End Function
%>
Beachten Sie, dass ich in einer Datei ziehen, die hilft Das VBScript arbeitet mit JSON-Variablen. Diese Datei kann found here sein.
Noch einmal, was zurückkommt scheint buchstäblich der gesamte Quellcode der ASPX-Datei zu sein. Ich brauche nur die JSON-Variable zurück. Hat jemand irgendwelche Vorschläge?
Sind Sie sicher? Weil ich es auf einem anderen Server (Windows Server 2012) ausprobiert habe, der IIS 8.5 ausführt, und ich habe Fehler 500, wenn es den AJAX-Aufruf durchführt. Ich habe das Gefühl, dass mit der Variablen, die den RequestString übernimmt, etwas nicht stimmt. Der Inhalt dieses RequestString sollte folgende Syntax haben: 'CN = (Zahlen), OU =! (Text), DC = (Text), DC = (Text), (Text)' Das sehe ich (der Neuling) es sollte ein Objekt sein und keine reguläre Variable (Dim). Habe ich recht? – LiquidMusic1
Wissen Sie, welche Zeile den 500 Fehler verursacht? – birwin
Ich steckte Ihren Code in einen alten klassischen ASP-Server, den ich hatte, und ich bekam eine Fehlermeldung, wo Sie GetObject aufrufen ("LDAP: //" & Benutzername). Sind Sie sicher, dass Sie diesen Anruf korrekt implementieren? Weitere Informationen zum Implementieren eines LDAP-Aufrufs finden Sie unter [this] (http://stackoverflow.com/a/900182/5660649). – birwin