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 l'autenticazione di tutti gli utenti.

<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, ASP.NET pagine Web verificare che l'input dell'utente non includa elementi SCRIPT o HTML. Per altre informazioni, vedere Cenni preliminari sugli exploit di 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 abilita la convalida dell'utente e della 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 di 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

Nome Descrizione
FormsAuthentication()

Inizializza una nuova istanza della classe FormsAuthentication.

Proprietà

Nome Descrizione
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 per l'attributo SameSite del cookie.

CookiesSupported

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

DefaultUrl

Ottiene l'URL a cui verrà reindirizzato la FormsAuthentication classe se non viene specificato alcun URL di reindirizzamento.

EnableCrossAppRedirects

Ottiene un valore che indica se gli utenti autenticati possono essere reindirizzati agli URL in altre applicazioni Web.

FormsCookieName

Ottiene il nome del cookie utilizzato per archiviare 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.

LoginUrl

Ottiene l'URL per la pagina di accesso a cui verrà reindirizzato la FormsAuthentication classe.

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 la scadenza scorrevole è abilitata.

TicketCompatibilityMode

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

Timeout

Ottiene la quantità di tempo prima della scadenza di un ticket di autenticazione.

Metodi

Nome Descrizione
Authenticate(String, String)
Obsoleti.

Convalida un nome utente e una password in base alle credenziali archiviate nel file di configurazione per un'applicazione.

Decrypt(String)

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

EnableFormsAuthentication(NameValueCollection)

Abilita l'autenticazione basata su form.

Encrypt(FormsAuthenticationTicket)

Crea una stringa contenente un ticket di autenticazione basata su form crittografato adatto per l'uso in un cookie HTTP.

Equals(Object)

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

(Ereditato da Object)
GetAuthCookie(String, Boolean, String)

Crea un cookie di autenticazione per un determinato nome utente. Questo non imposta il cookie come parte della risposta in uscita.

GetAuthCookie(String, Boolean)

Crea un cookie di autenticazione per un determinato nome utente. Questo non imposta il cookie come parte della risposta in uscita, in modo che un'applicazione possa avere un maggiore controllo sulla modalità di emissione del cookie.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetRedirectUrl(String, Boolean)

Restituisce l'URL di reindirizzamento per la richiesta originale che ha causato il reindirizzamento alla pagina di accesso.

GetType()

Ottiene il Type dell'istanza corrente.

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

Produce una password hash adatta per l'archiviazione 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 per l'applicazione.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
RedirectFromLoginPage(String, Boolean, String)

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

RedirectFromLoginPage(String, Boolean)

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

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 del problema e la data e l'ora di scadenza per un oggetto FormsAuthenticationTicket.

SetAuthCookie(String, Boolean, String)

Crea un ticket di autenticazione per il nome utente fornito e lo aggiunge alla raccolta di cookie della risposta, usando il percorso del cookie fornito o usando l'URL se si usa l'autenticazione senza cookie.

SetAuthCookie(String, Boolean)

Crea un ticket di autenticazione per il nome utente specificato e lo aggiunge alla raccolta di cookie della risposta oppure all'URL se si usa l'autenticazione senza cookie.

SignOut()

Rimuove il ticket di autenticazione basata su form dal browser.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche