2017-03-23 1 views
0

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?

Antwort

0

Ihr Server weiß nicht, was eine "aspx" -Datei ist. Es glaubt, dass es sich um eine Textdatei handelt, und gibt nur den Text der Datei zurück.

Ich bin nicht sicher, wie Sie das beheben würden, da ich Sharepoint nicht kenne. Da Sharepoint ein Dokumentenverwaltungssystem ist, scheint Sharepoint das zu tun, wofür es gebaut wurde. Dokumente speichern und dann den Benutzern erlauben, sie herunterzuladen. Es scheint keinen Interpreter auf den Sharepoint-Servern für "aspx" -Dateien zu geben.

könnte Diese URL Hilfe bietet dies ermöglicht, wenn es überhaupt möglich ist: https://support.microsoft.com/en-us/help/828810/how-to-enable-an-asp.net-application-to-run-on-a-sharepoint-virtual-server

+0

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

+0

Wissen Sie, welche Zeile den 500 Fehler verursacht? – birwin

+0

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

Verwandte Themen