Condividi tramite


Autenticazione basata su form tra applicazioni

In ASP.NET è supportata l'autenticazione basata su form in un ambiente distribuito, sia tra applicazioni su un solo server che in Web farm. Quando l'autenticazione basata su form viene attivata in più applicazioni ASP.NET, non è necessario che gli utenti rieseguano l'autenticazione quando passano da un'applicazione all'altra.

Configurazione dell'autenticazione basata su form tra applicazioni

Per configurare l'autenticazione basata su form tra applicazioni, è necessario impostare diversi attributi nelle sezioni di configurazione forms e machineKey in modo che i valori siano identici per tutte le applicazioni che partecipano al processo condiviso di autenticazione basata su form.

Nell'esempio riportato di seguito viene illustrata la sezione Authentication di un file Web.config. Se non diversamente specificato, gli attributi name, protection, path, validationKey, validation, decryptionKey e decryption devono essere identici per tutte le applicazioni. Analogamente, le chiavi di crittografia e convalida e gli schemi di crittografia e convalida utilizzati per i dati dei cookie devono essere esattamente gli stessi. Se le impostazioni non corrispondono, non è possibile condividere i cookie.

Nota

Le applicazioni che eseguono ASP.NET versione 2.0 possono condividere le informazioni dei ticket dell'autenticazione basata su form con versioni precedenti di ASP.NET a condizione che si includa decryption="3DES" nella configurazione dell'elemento machineKey per ogni applicazione ASP.NET versione 2.0.

<configuration>
  <system.web>
    <authentication mode="Forms" >
      <!-- The name, protection, and path attributes must match 
           exactly in each Web.config file. -->
      <forms loginUrl="login.aspx"
        name=".ASPXFORMSAUTH" 
        protection="All"  
        path="/" 
        timeout="30" />
    </authentication>

    <!-- Validation and decryption keys must exactly match and cannot
         be set to "AutoGenerate". The validation and decryption
         algorithms must also be the same. -->
    <machineKey
      validationKey="[your key here]" 
      decryptionKey="[your key here]" 
      validation="SHA1" />
  </system.web>
</configuration>

Dopo l'emissione di un cookie, la relativa scadenza viene registrata sulla base del valore Expires contenuto nel cookie stesso. In altre parole, se due applicazioni dispongono di attributi Timeout diversi, la data e l'ora di scadenza impostate al momento dell'emissione di ciascun cookie vengono conservate per tutta la durata del cookie. Quando un cookie viene aggiornato, la scadenza originaria del cookie è utilizzata per calcolare la nuova scadenza. Il valore Timeout di configurazione viene utilizzato solo al momento della creazione del cookie.

Vedere anche

Attività

Procedura: implementare l'autenticazione basata su form semplice

Altre risorse

Protezione delle applicazioni Web ASP.NET