API JavaScript di Test ed esami

Test ed esami è un'app UWP basata su browser che esegue il rendering di valutazioni online bloccate per test di alto livello, consentendo ai docenti di concentrarsi sul contenuto della valutazione anziché su come fornire un ambiente di test sicuro. A tale scopo, usa un'API JavaScript che può essere usata da qualsiasi applicazione Web. L'API take-a-test supporta lo standard dell'API del browser SBAC per i test di base comuni.

Per altre informazioni sull'app stessa, vedere le informazioni tecniche di Test ed esami app. Per informazioni sulla risoluzione dei problemi, vedere Risolvere i problemi relativi a Microsoft Test ed esami con il visualizzatore eventi.

Documentazione di riferimento

Le API Test ed esami esistono negli spazi dei nomi seguenti. Si noti che tutte le API dipendono da un oggetto globale SecureBrowser .

Spazio dei nomi Descrizione
spazio dei nomi security Contiene API che consentono di bloccare il dispositivo per il test e applicare un ambiente di test.

Spazio dei nomi security

Lo spazio dei nomi di sicurezza consente di bloccare il dispositivo, controllare l'elenco dei processi utente e di sistema, ottenere indirizzi MAC e IP e cancellare le risorse Web memorizzate nella cache.

metodo Descrizione
lockDown Blocca il dispositivo per il test.
isEnvironmentSecure Determina se il contesto di blocco viene ancora applicato al dispositivo.
getDeviceInfo Ottiene informazioni dettagliate sulla piattaforma in cui è in esecuzione l'applicazione di test.
examineProcessList Ottiene l'elenco dei processi utente e di sistema in esecuzione.
close Chiude il browser e sblocca il dispositivo.
getPermissiveMode Controlla se la modalità permissiva è attivata o disattivata.
setPermissiveMode Attiva o disattiva la modalità permissiva.
emptyClipBoard Cancella gli Appunti di sistema.
getMACAddress Ottiene l'elenco di indirizzi MAC per il dispositivo.
getStartTime Ottiene l'ora di avvio dell'app di test.
getCapability Esegue una query che indica se una funzionalità è abilitata o disabilitata.
setCapability Abilita o disabilita la capacità specificata.
isRemoteSession Controlla se la sessione corrente è registrata in modalità remota.
isVMSession Controlla se la sessione corrente è in esecuzione in una macchina virtuale.

lockDown

Arrestare il dispositivo. Usato anche per sbloccare il dispositivo. L'applicazione Web di test richiamerà questa chiamata prima di consentire agli studenti di avviare il test. L'implementatore deve eseguire tutte le azioni necessarie per proteggere l'ambiente di test. I passaggi eseguiti per proteggere l'ambiente sono specifici del dispositivo e, ad esempio, includono aspetti come la disabilitazione delle acquisizioni dello schermo, la disabilitazione della chat vocale in modalità protetta, la cancellazione degli Appunti di sistema, l'ingresso in una modalità tutto schermo, la disabilitazione di Spazi nei dispositivi OSX 10.7+ e così via. L'applicazione di test abiliterà il blocco prima della avvio di una valutazione e disabiliterà il blocco quando lo studente ha completato la valutazione ed è fuori dal test sicuro.

Sintassi
void SecureBrowser.security.lockDown(Boolean enable, Function onSuccess, Function onError);

Parametri

  • enable - true per eseguire l'app Take-a-Test sopra la schermata di blocco e applicare i criteri descritti in questo documento. false arresta l'esecuzione di test di esecuzione al di sopra della schermata di blocco e la chiude, a meno che l'app non sia bloccata. In questo caso non vi è alcun effetto.
  • onSuccess - [facoltativo] La funzione da chiamare dopo che il blocco è stato abilitato o disabilitato. Sarà nel formato Function(Boolean currentlockdownstate).
  • onError - [facoltativo] Funzione da chiamare se l'operazione di blocco non è riuscita. Sarà nel formato Function(Boolean currentlockdownstate).

Requisiti
Windows 10, versione 1709 o successiva


isEnvironmentSecure

Determina se il contesto di blocco viene ancora applicato al dispositivo. L'applicazione Web di test richiamerà questa operazione prima di consentire agli studenti di avviare il test e periodicamente all'interno del test.

Sintassi
void SecureBrowser.security.isEnvironmentSecure(Function callback);

Parametri

  • callback - Funzione da chiamare al termine di questa funzione. Deve essere del modulo Function(String state) in cui state è una stringa JSON contenente due campi. Il primo è il secure campo , che mostrerà true solo se tutti i blocchi necessari sono stati abilitati (o funzionalità disabilitate) per abilitare un ambiente di test sicuro e nessuno di questi è stato compromesso dopo che l'app ha immesso la modalità di blocco. L'altro campo, messageKey, include altri dettagli o informazioni specifiche del fornitore. L'intento è consentire ai fornitori di inserire informazioni aggiuntive che aumentano il flag booleano secure :
{
    'secure' : "true/false",
    'messageKey' : "some message"
}

Requisiti
Windows 10 versione 1709 o successive


getDeviceInfo

Ottiene informazioni dettagliate sulla piattaforma in cui è in esecuzione l'applicazione di test. Viene usato per aumentare tutte le informazioni che erano riconoscibili dall'agente utente.

Sintassi
void SecureBrowser.security.getDeviceInfo(Function callback);

Parametri

  • callback - Funzione da chiamare al termine di questa funzione. Deve essere del modulo Function(String infoObj) in cui infoObj è una stringa JSON contenente diversi campi. Devono essere supportati i seguenti campi:
    • os rappresenta il tipo di sistema operativo (ad esempio: Windows, macOS, Linux, iOS, Android e così via)
    • name rappresenta il nome della versione del sistema operativo, se presente, ad esempio Sierra, Ubuntu.
    • version rappresenta la versione del sistema operativo (ad esempio: 10.1, 10 Pro e così via)
    • brand rappresenta la personalizzazione sicura del browser (ad esempio: OAKS, CA, SmarterApp e così via)
    • model rappresenta il modello di dispositivo solo per i dispositivi mobili; null/inutilizzato per i browser desktop.

Requisiti
Windows 10 versione 1709 o successive


examineProcessList

Ottiene l'elenco di tutti i processi in esecuzione nel computer client di proprietà dell'utente. L'applicazione di test lo richiamerà per esaminare l'elenco e confrontarlo con un elenco di processi considerati non elencati durante il ciclo di test. Questa chiamata deve essere richiamata sia all'inizio di una valutazione che periodicamente mentre lo studente sta prendendo la valutazione. Se viene rilevato un processo di elenco di rifiuto, la valutazione deve essere arrestata per mantenere l'integrità dei test.

Sintassi
void SecureBrowser.security.examineProcessList(String[] denylistedProcessList, Function callback);

Parametri

  • denylistedProcessList - Elenco dei processi elencati dall'applicazione di test.
    callback - Funzione da richiamare dopo che i processi attivi sono stati trovati. Deve essere nel formato : Function(String foundDenylistedProcesses) dove foundDenylistedProcesses è nel formato : "['process1.exe','process2.exe','processEtc.exe']". Sarà vuoto se non sono stati trovati processi di elenco di rifiuto. Se è Null, indica che si è verificato un errore nella chiamata di funzione originale.

Osservazioni L'elenco non include i processi di sistema.

Requisiti
Windows 10 versione 1709 o successive


close

Chiude il browser e sblocca il dispositivo. L'applicazione di test deve richiamarla quando l'utente sceglie di uscire dal browser.

Sintassi
void SecureBrowser.security.close(restart);

Parametri

  • restart - Questo parametro viene ignorato ma deve essere specificato.

Osservazioni In Windows 10, versione 1607, il dispositivo deve essere bloccato inizialmente. Nelle versioni successive, questo metodo chiude il browser indipendentemente dal fatto che il dispositivo sia bloccato.

Requisiti
Windows 10 versione 1709 o successive


getPermissiveMode

L'applicazione Web di test deve richiamarla per determinare se la modalità permissiva è attivata o disattivata. In modalità permissiva, un browser dovrebbe rilassare alcuni dei suoi rigorosi hook di sicurezza per consentire all'assistive technology di lavorare con il browser sicuro. Ad esempio, i browser che impediscono in modo aggressivo ad altre interfacce utente dell'applicazione di presentare sopra di loro potrebbero voler rilassarsi quando in modalità permissiva.

Sintassi
void SecureBrowser.security.getPermissiveMode(Function callback)

Parametri

  • callback - Funzione da chiamare al termine di questa funzione. Deve essere nel formato: Function(Boolean permissiveMode) dove permissiveMode indica se il browser è attualmente in modalità permissiva. Se non è definito o null, si è verificato un errore nell'operazione get.

Requisiti
Windows 10 versione 1709 o successive


setPermissiveMode

L'applicazione Web di test deve richiamare questa opzione per attivare o disattivare la modalità permissiva. In modalità permissiva, un browser dovrebbe rilassare alcuni dei suoi rigorosi hook di sicurezza per consentire all'assistive technology di lavorare con il browser sicuro. Ad esempio, i browser che impediscono in modo aggressivo ad altre interfacce utente dell'applicazione di presentare sopra di loro potrebbero voler rilassarsi quando in modalità permissiva.

Sintassi
void SecureBrowser.security.setPermissiveMode(Boolean enable, Function callback)

Parametri

  • enable - Valore booleano che indica lo stato della modalità permissiva prevista.
  • callback - Funzione da chiamare al termine di questa funzione. Deve essere nel formato: Function(Boolean permissiveMode) dove permissiveMode indica se il browser è attualmente in modalità permissiva. Se non è definito o null, si è verificato un errore nell'operazione get.

Requisiti
Windows 10 versione 1709 o successive


emptyClipBoard

Cancella gli Appunti di sistema. L'applicazione di test deve richiamarla per forzare la cancellazione dei dati che possono essere archiviati negli Appunti di sistema. La funzione lockDown esegue anche questa operazione.

Sintassi
void SecureBrowser.security.emptyClipBoard();

Requisiti
Windows 10 versione 1709 o successive


getMACAddress

Ottiene l'elenco di indirizzi MAC per il dispositivo. L'applicazione di test deve richiamarla per facilitare la diagnostica.

Sintassi
void SecureBrowser.security.getMACAddress(Function callback);

Parametri

  • callback - Funzione da chiamare al termine di questa funzione. Deve essere nel formato : Function(String addressArray) dove addressArray è nel formato : "['00:11:22:33:44:55','etc']".

Osservazioni:
È difficile basarsi sugli indirizzi IP di origine per distinguere tra i computer degli utenti finali all'interno dei server di test perché firewall/NATs/Proxy sono comunemente usati nelle scuole. Gli indirizzi MAC consentono all'app di distinguere i computer client finali dietro un firewall comune a scopo di diagnostica.

Requisiti
Windows 10 versione 1709 o successive


getStartTime

Ottiene l'ora di avvio dell'app di test.

Sintassi
DateTime SecureBrowser.security.getStartTime();

Restituzione
Oggetto DateTime che indica l'ora di avvio dell'app di test.

Requisiti
Windows 10 versione 1709 o successive


getCapability

Esegue una query che indica se una funzionalità è abilitata o disabilitata.

Sintassi
Object SecureBrowser.security.getCapability(String feature)

Parametri
feature - Stringa per determinare la funzionalità di query. Le stringhe di funzionalità valide sono "screenMonitoring", "printing" e "textSuggestions" (senza distinzione tra maiuscole e minuscole).

Valore restituito
Questa funzione restituisce un oggetto JavaScript o un valore letterale con il formato : {<feature>:true|false}. true se la funzionalità di query è abilitata, false se la funzionalità non è abilitata o la stringa di funzionalità non è valida.

Requisiti di Windows 10, versione 1703 o successiva


setCapability

Abilita o disabilita una funzionalità specifica nel browser.

Sintassi
void SecureBrowser.security.setCapability(String feature, String value, Function onSuccess, Function onError)

Parametri

  • feature - Stringa per determinare la capacità di impostare. Le stringhe di funzionalità valide sono "screenMonitoring", "printing"e (senza distinzione tra maiuscole e "textSuggestions" minuscole).
  • value - Impostazione prevista per la funzionalità. Deve essere "true" o "false".
  • onSuccess - [facoltativo] La funzione da chiamare dopo il completamento dell'operazione di impostazione. Deve essere nel formato Function(String jsonValue) in cui jsonValue è nel formato : {<feature>:true|false|undefined}.
  • onError - [facoltativo] Funzione da chiamare se l'operazione per impostare è fallita. Deve essere nel formato Function(String jsonValue) in cui jsonValue è nel formato : {<feature>:true|false|undefined}.

Osservazioni:
Se la funzionalità di destinazione è sconosciuta al browser, questa funzione passerà un valore di undefined alla funzione di callback.

Requisiti di Windows 10, versione 1703 o successiva


isRemoteSession

Controlla se la sessione corrente è registrata in modalità remota.

Sintassi
Boolean SecureBrowser.security.isRemoteSession();

Valore restituito
true se la sessione corrente è remota; in caso contrario , false.

Requisiti
Windows 10, versione 1709 o successiva


isVMSession

Controlla se la sessione corrente è in esecuzione in una macchina virtuale.

Sintassi
Boolean SecureBrowser.security.isVMSession();

Valore restituito
true se la sessione corrente è in esecuzione in una macchina virtuale; in caso contrario , false.

Osservazioni:
Questo controllo API può rilevare solo le sessioni di macchine virtuali in esecuzione in determinati hypervisor che implementano le API appropriate

Requisiti
Windows 10, versione 1709 o successiva