FormsAuthentication Classe

Definizione

Gestisce i servizi di autenticazione basata su form per le applicazioni Web. La classe non può essere ereditata.

public ref class FormsAuthentication sealed
public sealed class FormsAuthentication
type FormsAuthentication = class
Public NotInheritable Class FormsAuthentication
Ereditarietà
FormsAuthentication

Esempio

Nell'esempio di codice seguente viene illustrato il file Web.config per un'applicazione ASP.NET che usa il provider di appartenenze ASP.NET per l'autenticazione basata su form e richiede che tutti gli utenti siano autenticati.

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
  </connectionStrings>
  <system.web>
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
      <providers>
        <add name="SqlProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="SqlServices"
          enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="true"
          passwordFormat="Hashed"
          applicationName="/" />
      </providers>
    </membership>
  </system.web>
</configuration>

Nell'esempio di codice seguente viene illustrata la pagina di accesso per un'applicazione ASP.NET che usa l'autenticazione basata su form e l'appartenenza ASP.NET.

Importante

Questo esempio contiene una casella di testo che accetta l'input dell'utente, che rappresenta una potenziale minaccia per la sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per altre informazioni, vedere Cenni preliminari sugli attacchi tramite script.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Login_OnClick(object sender, EventArgs args)
{
   if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
   else
     Msg.Text = "Login failed. Please check your user name and password and try again.";
}


</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub Login_OnClick(sender As Object, args As  EventArgs)

   If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)
   Else
     Msg.Text = "Login failed. Please check your user name and password and try again."
   End If

End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>

Commenti

L'autenticazione basata su form consente la convalida di utenti e password per le applicazioni Web che non richiedono autenticazione di Windows. Con l'autenticazione basata su form, le informazioni utente vengono archiviate in un'origine dati esterna, ad esempio un Membership database o nel file di configurazione per un'applicazione. Dopo l'autenticazione di un utente, l'autenticazione basata su form mantiene un ticket di autenticazione in un cookie o nell'URL in modo che un utente autenticato non debba fornire le credenziali a ogni richiesta.

L'autenticazione basata su form è abilitata impostando l'attributo mode dell'elemento di configurazione dell'autenticazione su Forms. È possibile richiedere che tutte le richieste a un'applicazione contengano un ticket di autenticazione utente valido usando l'elemento di configurazione dell'autorizzazione per negare la richiesta di qualsiasi utente sconosciuto, come illustrato nell'esempio seguente.

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="login.aspx" />
  </authentication>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>

Nell'esempio precedente, qualsiasi richiesta per una pagina ASP.NET che fa parte dell'applicazione richiede un nome utente valido fornito dall'autenticazione basata su form. Se non esiste alcun nome utente, la richiesta viene reindirizzata all'oggetto configurato LoginUrl.

La FormsAuthentication classe fornisce l'accesso a metodi e proprietà che è possibile usare in un'applicazione che autentica gli utenti. Il RedirectToLoginPage metodo reindirizza un browser all'oggetto configurato LoginUrl per consentire agli utenti di accedere a un'applicazione. Il RedirectFromLoginPage metodo reindirizza un utente autenticato all'URL protetto originale richiesto o a DefaultUrl. Sono inoltre disponibili metodi che consentono di gestire i ticket di autenticazione basata su form, se necessario.

Costruttori

FormsAuthentication()

Inizializza una nuova istanza della classe FormsAuthentication.

Proprietà

CookieDomain

Ottiene il valore del dominio del cookie di autenticazione basata su form.

CookieMode

Ottiene un valore che indica se l'applicazione è configurata per l'autenticazione basata su form senza cookie.

CookieSameSite

Ottiene o imposta il valore dell'attributo SameSite del cookie.

CookiesSupported

Ottiene un valore che indica se l'applicazione è configurata per il supporto dell'autenticazione basata su form senza cookie.

DefaultUrl

Ottiene l'URL verso cui la classe FormsAuthentication effettuerà il reindirizzamento se non viene specificato alcun URL di reindirizzamento.

EnableCrossAppRedirects

Ottiene o imposta un valore che indica se gli utenti autenticati possono essere reindirizzati a URL in altre applicazioni.

FormsCookieName

Ottiene il nome del cookie utilizzato per memorizzare il ticket di autenticazione basata su form.

FormsCookiePath

Ottiene il percorso del cookie di autenticazione basata su form.

IsEnabled

Ottiene un valore che indica se l'autenticazione basata su form è abilitata o meno.

LoginUrl

Ottiene l'URL della pagina di accesso verso cui la classe FormsAuthentication effettuerà il reindirizzamento.

RequireSSL

Ottiene un valore che indica se il cookie di autenticazione basata su form richiede SSL per essere restituito al server.

SlidingExpiration

Ottiene un valore che indica se è abilitata la scadenza variabile.

TicketCompatibilityMode

Ottiene un valore che indica se utilizzare lo standard Coordinated Universal Time (UTC) o l'ora locale per la data di scadenza del ticket.

Timeout

Ottiene la quantità di tempo disponibile prima che un ticket di autenticazione scada.

Metodi

Authenticate(String, String)
Obsoleti.

Convalida un nome utente e una password mediante un confronto con le credenziali memorizzate nel file di configurazione di un'applicazione.

Decrypt(String)

Crea un oggetto FormsAuthenticationTicket basato sul ticket crittografato di autenticazione basata su form passato al metodo.

EnableFormsAuthentication(NameValueCollection)

Abilita l'autenticazione basata su form.

Encrypt(FormsAuthenticationTicket)

Produce una stringa contenente un ticket crittografato di autenticazione basata su form che è possibile utilizzare in un cookie HTTP.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetAuthCookie(String, Boolean)

Crea un cookie di autenticazione per un nome utente specifico. I cookie non vengono impostati come parte della risposta in uscita, in modo da consentire all’applicazione un maggiore controllo sulle modalità di emissione dei cookie.

GetAuthCookie(String, Boolean, String)

Crea un cookie di autenticazione per un nome utente specifico. Tuttavia, non imposta il cookie come parte della risposta in uscita.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetRedirectUrl(String, Boolean)

Restituisce l'URL di reindirizzamento della richiesta originale che ha provocato il reindirizzamento alla pagina di accesso.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
HashPasswordForStoringInConfigFile(String, String)
Obsoleti.

Produce una password con hash che è possibile memorizzare in un file di configurazione in base alla password e all'algoritmo hash specificati.

Initialize()

Inizializza l'oggetto FormsAuthentication in base alle impostazioni di configurazione dell'applicazione

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
RedirectFromLoginPage(String, Boolean)

Reindirizza un utente autenticato all'URL inizialmente richiesto o all'URL predefinito.

RedirectFromLoginPage(String, Boolean, String)

Reindirizza un utente autenticato all'URL inizialmente richiesto o all'URL predefinito utilizzando il percorso del cookie specificato per il cookie di autenticazione basata su form.

RedirectToLoginPage()

Reindirizza il browser all'URL di accesso.

RedirectToLoginPage(String)

Reindirizza il browser all'URL di accesso con la stringa di query specificata.

RenewTicketIfOld(FormsAuthenticationTicket)

Aggiorna in modo condizionale la data e l'ora di emissione e di scadenza di un oggetto FormsAuthenticationTicket.

SetAuthCookie(String, Boolean)

Crea un ticket di autenticazione per il nome utente fornito e lo aggiunge all'insieme di cookie della risposta o all'URL se si utilizza l'autenticazione senza cookie.

SetAuthCookie(String, Boolean, String)

Crea un ticket di autenticazione per il nome utente fornito e lo aggiunge all'insieme di cookie della risposta utilizzando il percorso del cookie fornito o utilizzando l'URL se si utilizza l'autenticazione senza cookie.

SignOut()

Rimuove dal browser il ticket di autenticazione basata su form.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche