Windows 8.1 consente solo URI https, non URI HTTP

Piattaforme

Client - server Windows 8.1 - Windows Server 2012 R2

Descrizione

Anche se le app compilate per Windows 8 possono includere URI http e https negli URI del contenuto dell'applicazione, le app compilate per Windows 8.1 possono includere solo URI https.

L'unica eccezione è per ContentUriRules dinamici specificati nel file di AppxManifest.xml dell'app. Con ContentUriRules dinamico, le app possono accedere a domini o risorse di rete aggiuntive fornite dall'amministratore, ad esempio Criteri di gruppo URI. Tuttavia, ContentUriRules dinamico è disponibile solo per le app di Windows Store se soddisfano queste condizioni:

  • La Criteri di gruppo è abilitata
  • Il pacchetto ha specificato la funzionalità enterpriseAuthentication
  • OsMaxVersionTested del pacchetto è Windows 8.1 o maggiore

Le nuove restrizioni in Windows 8.1 fanno parte delle restrizioni di sicurezza avanzate per proteggere ulteriormente la piattaforma.

Manifestazioni

Quando si esegue un'app compilata per Windows 8 in Windows 8.1, è consentito l'uso degli URI HTTP in ApplicationContentUriRules.

Soluzioni di prevenzione

È consigliabile che gli sviluppatori WWA passino da <iframe> al controllo WebView (<x-ms-webview>). Tuttavia, se è necessario il supporto per AppCache, IndexedDB, geolocation o accesso a livello di codice, sarà necessario continuare a usare <iframe> per Windows 8.1.

L'utilizzo continuo di <iframe> per il contenuto remoto richiederà una nuova voce in ApplicationContentUriRules per l'app. Le app con WebView richiedono nuove voci in ApplicationContentUriRules se il contenuto Web deve richiamare window.external.notify per generare un evento ScriptNotify . Se Visual Studio non è disponibile, è possibile aggiornare il manifesto dell'app aggiungendo il codice XML seguente, inclusi i caratteri jolly per i sottodomini (ad esempio https://*.microsoft.com):

<Package>
    …
    <Applications>
        <Application>
            …
            <ApplicationContentUriRules>
                <Rule Match="https://www.example.com" Type="include"/>
            </ApplicationContentUriRules>
        </Application>
    </Applications>
</Package>

Risorse