Caracteristicile comenzilor externe de pornire din paginile asp-uri

Caracteristicile comenzilor externe de pornire
din paginile ASP

Pagini Active Server

Codul programului între <% и %>, este executat pe server și este subordonat sintaxei uneia dintre limbile selectate. Restul codului este o pagină HTML într-o formă explicită.

Afișarea unei pagini de probă ASP este după cum urmează:

<%@ Language=VBScript CODEPAGE=1251%>

Titlul paginii

Variabila Response.write 'afișează conținutul unei variabile

După ce interpretul de program interpretează IIS și convertește rezultatele lucrării sale în HTML / DHTML, trebuie să dați comanda pentru a afișa pagina în browser-ul clientului. Această comandă este Response.Write q, unde q este numele variabilei care conține fragmentul de cod HTML.

Metode de lansare a aplicațiilor de la VBS

Luați în considerare invocarea aplicațiilor direct din fișierul VBS, pentru aceasta puteți utiliza una dintre metodele - Run sau Exec. Trebuie remarcat faptul că nu există nici o funcție în VBScript cu care puteți rula aplicații, dar există în WSH, care suportă VBSscipt și JScript. Creați o instanță a obiectului WSH utilizând comanda Create Object ("WScript.Shell").

Setați Wshell = CreateObject ("Wscript.shell")

Setați Proc = Wshell.Exec ("application.exe")

"Așteptați până când programul se termină

În timp ce Proc.Status = 0

Setați Wshell = Nimic

Setați Wshell = CreateObject ("Wscript.shell")

Setați Proc = Wshell.Run ("application.exe")

Setați Wshell = Nimic

Pentru a lansa cu succes diverse aplicații de pe pagina ASP, este necesar să țineți cont de câteva caracteristici, care vor fi discutate mai jos. Toate aplicațiile pot fi divizate în mod condiționat în mai multe grupuri:

  • aplicații cu o interfață grafică;
  • aplicațiile care rulează de la linia de comandă (utilitare de linii de comandă);
  • script-uri pe VBS / Jscript (deși script-urile de pe VBS se referă la aplicațiile care rulează de la linia de comandă, le vom separa într-un grup separat).

Prima caracteristică: deoarece codul paginii ASP este executat pe server și numai rezultatul sub forma unei pagini HTML este trimis către mașina client, utilizatorul trebuie să aibă drepturile corespunzătoare pentru lansarea cu succes a aplicației pe server. IIS este un sistem pe trei niveluri.

Lăsați IIS să aibă setările implicite. În acest caz, atunci când descărcarea orice ASP-pagină, pornește de la numele de utilizator built-in (vezi. Fig. 2). Dacă pagina este de lucru cu unele baze de date, cum ar fi cu Active Directory, utilizatorul care execută această pagină trebuie să aibă drepturi de administrator. Există mai multe modalități de a îndeplini aceste condiții. Mai întâi, în loc de contul de utilizator încorporat, înregistrați numele contului de administrator de rețea. În acest scenariu, orice utilizator din rețea va putea să acceseze această pagină, deoarece acesta va rula ca administrator de sistem. Această metodă dă tuturor accesul la această pagină, ceea ce, cu acordul dvs., este greșit. Nu e așa de rău. Principalul lucru este că, astfel, securitatea întregului sistem este redusă drastic. În cazul unor erori la pagina, atacatorul va lansa cu ușurință un cod malware cu drepturi de administrator. Prin urmare, este propus un alt mod de a rezolva problema prin care puteți restricționa accesul la resurse. În setările IIS, trebuie să resetați cutia (vezi. Fig. 2) Activați accesul anonim, și setați-l în fața Autentificare de bază. Ar trebui să schimbați, de asemenea, permisiunile pe structura de fișiere utilizat de site-ul, eliminând din aceasta grupa Toată lumea, și adăugarea de grupul de securitate corespunzătoare. Cu această setare de IIS, numai administratorii de sistem vor avea acces la această pagină. Când încercați oricărui utilizator care nu este un administrator de rețea, accesați pagina, IIS se va solicita numele de utilizator și parola.

Dacă doriți să se extindă cercul persoanelor care ar trebui să fie disponibile pe site-ul, în timp ce utilizatorii nu sunt un administrator de sistem, puteți utiliza opțiunea, care este o sinteză a două soluții prezentate anterior: restricționa accesul la site-ul utilizând Autentificare de bază și permisiunile pe structura de fișiere, executați scriptul , încapsulate în pagina cu drepturi de administrator.

Tocmai am considerat mecanismul de interacțiune dintre prima și a doua legătură în sistemul de trei niveluri. Primul link este stația de lucru a utilizatorului, al doilea este serverul pe care este instalat IIS. Relația dintre aceste legături se realizează cu ajutorul unui singur utilizator. Între al doilea și al treilea link (serverul IIS, procesele generate de ASP), interacțiunea este efectuată de un alt utilizator. Luați în considerare interacțiunea celei de-a doua și a treia legături în mai multe detalii.

Când o aplicație pornește de la o pagină ASP, se efectuează o interacțiune între a doua și a treia legătură. IIS generează un proces care este rulat în numele unui alt utilizator încorporat. Deoarece pagina ASP rulează pe server, aveți nevoie de privilegiile corespunzătoare pentru a rula aplicația. Administrați acest cont de utilizator în Instrumente de aplicație (consultați Figura 3).

Aceasta este prima caracteristică care se aplică absolut tuturor aplicațiilor. Există un al doilea, care este, de asemenea, tipic pentru toate aplicațiile.

Lansarea unei aplicații cu o interfață grafică

Aplicația este lansată utilizând una din metodele descrise mai sus (a se vedea exemplele 2, 3). Singura caracteristică este nevoia de a specifica calea completă la aplicația lansată. Calea poate fi locală, de exemplu, C: Folder1. și rețea: ServerC $ Folder1.

Pornirea aplicației din linia de comandă (utilitate linie de comandă)

O aplicație poate fi un utilitar pentru linia de comandă, o aplicație pentru Windows (un fișier EXE).

Să luăm în considerare particularitățile de a rula aplicații de linie de comandă din paginile ASP. Sintaxa comenzii pentru a rula utilitarul din linia de comandă este:

% comspec% / c cmd_util.exe

Prefixul% comspec% / c este obligatoriu. Variabila de mediu% comspec% indică la C: Windows System32cmd.exe. Deoarece procesul CMD este inițiat când comanda externă este pornită, ar trebui închisă după procesarea comenzii. Această procedură este efectuată utilizând comutatorul / c. Dacă procesele nu sunt închise, eventual va exista o lipsă de memorie pe server, ceea ce va conduce la o scădere semnificativă a vitezei de funcționare a acestuia și ulterior la defectarea diferitelor servicii ale componentelor. Calea către utilitate trebuie de asemenea scrisă complet. Puteți utiliza numele de rețea în format UNC (ServerShare.).

Rularea fișierelor VBS din script

Există situații în care trebuie să executați un script VBS extern dintr-o pagină ASP. De regulă, este început cu parametrii. Luați în considerare o piesă a listei de script-uri VBS referitoare la citirea parametrilor săi externi.

Parametrii de citire se bazează pe utilizarea proprietății Argumente a obiectului WSH WSH. Iată un exemplu care definește care parametri a fost rulat cu:

t = "Numărul parametrilor presetate -" Wscript.Arguments.Count chr (13) „Parametri“ chr (13)

Pentru fiecare arg in objArgs

t = t arg chr (13)

Citirea valorilor elementelor unui tablou care conține argumentele scriptului se poate face într-un mod diferit. Ambele opțiuni dau același rezultat.

Prin urmare, alegerea lui depinde de părtinirea programatorului. Observăm doar că prima variantă este mai compactă. Cu toate acestea, dacă doriți să utilizați numerotarea obiectelor, cea de-a doua opțiune va fi mai reușită, deoarece în prima va trebui să introduceți un contor suplimentar:

t = "Numărul parametrilor presetate -" Coun chr (13) „Parametri“ chr (13)

Pentru i = 0 la Coun-1

t = t i + 1 ":" (i) chr (13)

Uneori este necesar să obținem valoarea unui argument specific. Acest lucru este ilustrat în exemplul 6. Trebuie amintit că numerotarea elementelor începe la 0:

Msgbox objArgs (2) "Citirea celui de-al treilea argument.

Exemplul de mai sus nu este un exemplu de programare, deoarece exemplul nu are un handler de eroare.

Anticiparea posibilelor erori, imitarea celui mai simplu intelect din program este un ton bun în programare. Deci, să creăm un handler de eroare pentru acest exemplu. În această situație, apare eroarea la citirea parametrilor inexistenți.

q = InputBox ("Introduceți numărul argumentului de citit", "Citește numărul argumentului") - 1

dacă q> Coun atunci

Atunci când se utilizează fișiere BAT, este necesar să se rețină că un proces separat este generat nu numai în momentul lansării acestui tip de fișiere, ci și atunci când se execută fiecare dintre comenzile din interiorul acestuia. Din același motiv, nu este necesar să se efectueze comenzi interconectate, deoarece poate exista o situație în care prima nu a avut încă timp să lucreze, iar cea de-a doua, conținută în următoarea linie și utilizând rezultatul primei comenzi, a început deja să fie executată. Ca urmare, apare o eroare. Pentru a evita acest lucru, apelați comenzile din codul paginii ASP și verificați rezultatul comenzii consumate.

În concluzie, menționăm pe scurt faptul că atunci când lucrăm cu fișiere externe din paginile ASP, este necesar să ținem cont de caracteristicile IIS. Sper că după ce am citit acest articol, programatorii nu vor avea probleme cu rularea aplicațiilor din paginile ASP.