Condividi tramite


Livelli di attendibilità e file di criteri ASP.NET

Aggiornamento: novembre 2007

I livelli di attendibilità sono associati a file di criteri tramite l'elemento di configurazione <securityPolicy>, che è valido solo in un file di configurazione (Web.config) a livello di sito. È possibile aggiungere o rimuovere livelli di attendibilità mediante l'aggiunta di voci alla sezione di configurazione in cui si specifica il nome del livello di attendibilità e il file di criteri da utilizzare. I file di attendibilità predefiniti sono installati nella directory Config all'interno della cartella contenente il file Aspnet_isapi.dll. Il percorso è lo stesso del file di configurazione Machine.config e del file di criteri di protezione in fase di esecuzione.

Il livello di attendibilità Full rappresenta un caso particolare. Poiché equivale esattamente all'attendibilità completa nell'area del computer locale, l'host ASP.NET non consente di applicare criteri aggiuntivi a queste applicazioni; Di conseguenza, il livello di attendibilità Full viene mappato a un gestore interno e ASP.NET non consente di aggiungere criteri ulteriori al dominio applicazione per le applicazioni con attendibilità totale.

Nell'esempio riportato di seguito viene illustrata la sezione securityPolicy di un file di configurazione che esegue il mapping dei livelli di attendibilità a file di criteri diversi.

<system.web>
    <securityPolicy>
    <trustLevel name="Full"    policyFile="internal"/>
    <trustLevel name="High"    policyFile="web_hightrust.config"/>
    <trustLevel name="Medium"  policyFile="web_mediumtrust.config"/>
    <trustLevel name="Low"     policyFile="web_lowtrust.config"/>
    <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
    </securityPolicy>
</system.web>

Per impedire che le applicazioni possano specificare un livello di attendibilità personalizzato, è possibile utilizzare una direttiva <location> e impostare l'attributo allowOverride su false. Questa operazionepuò essere eseguita su un server che include più applicazioni e che deve limitare il livello di attendibilità di ciascuna di esse.

Modifica dei file con livello di attendibilità

È possibile modificare i file dei criteri o crearne di nuovi con set di autorizzazioni personalizzati. È possibile, ad esempio, copiare il contenuto del file Web_hightrust.config e assegnare l'autorizzazione per creare connessioni OLEDB aggiungendo in primo luogo la classe OleDbPermission alla sezione SecurityClasses del file dei criteri, come illustrato nell'esempio di codice riportato di seguito.

<SecurityClass Name="OleDbPermission" 
    Description="System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, 
    Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

È possibile quindi specificare i parametri per la classe OleDbPermission specificata, includendo restrizioni per stringhe di connessione OLEDB. Successivamente sarà possibile specificare quali set di autorizzazioni includono la classe di protezione OleDbPermission aggiungendo un elemento IPermission all'elemento PermissionSet con un nome ASP.NET nel file dei criteri di attendibilità. Nell'esempio di codice riportato di seguito, ad esempio, viene specificato che l'unica connessione OLEDB consentita garantirà l'accesso senza limitazioni al database di Access Catalog.mdb.

<PermissionSet
  class="NamedPermissionSet"
  version="1"
  Name="ASP.Net">
  <IPermission
    class="OleDbPermission"
    version="1"
    Unrestricted="true" />
</PermissionSet>

Alcune autorizzazioni, ad esempio l'autorizzazione OleDbPermission, consentono di specificare ulteriori restrizioni che definiscono il livello di accesso concesso o negato. Ad esempio, l'autorizzazione OleDbPermission consente di concedere l'accesso per stabilire connessioni mediante il provider di dati OLEDB di .NET Framework, ma con restrizioni per quanto riguarda le stringhe di connessione OLEDB consentite. Nell'esempio di codice riportato di seguito viene specificato che sono consentite solo le connessioni OLEDB ai database di Access.

<IPermission class="OleDbPermission" version="1">
    <add ConnectionString=
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\access_data\catalog.mdb""
        KeyRestrictions=""data source=;user id=;password=;" 
        KeyRestrictionBehavior="AllowOnly"/>
</IPermission>

È possibile salvare il file dei criteri di attendibilità aggiornato e sostituirlo al file Web_hightrust.config, oppure è possibile creare un nuovo file dei criteri di attendibilità e specificarlo come file dei criteri per il livello di attendibilità High o creare un nuovo livello di attendibilità come illustrato nell'esempio di codice riportato di seguito.

    <trustLevel name="HighCustom"
    policyFile="web_highcustom.config"/>

Per mantenere le impostazioni predefinite, in ASP.NET sono incluse due copie di ogni file contenente le impostazioni del livello di attendibilità. Il nome assegnato a una copia presenta l'estensione config, come illustrato in precedenza nella sezione di configurazione. Il file config contiene le impostazioni relative a ciascun livello di attendibilità utilizzato dal sistema. La seconda copia presenta l'estensione config.default e contiene le impostazioni predefinite del livello di attendibilità correlato. Se le impostazioni del livello di attendibilità corrente sono state modificate e si desidera ripristinare quelle predefinite, è possibile sostituire il contenuto del file con estensione config con il contenuto del file con estensione config.default.

Per una descrizione dettagliata della gestione dei file dei criteri di attendibilità, vedere "How To: Use Medium Trust in ASP.NET 2.0" in Patterns and Practices (PAG): Security Guidance for Applications.

Vedere anche

Concetti

Meccanismi dei criteri ASP.NET

Altre risorse

Protezione delle applicazioni Web ASP.NET