DefaultAuthenticationModule.Authenticate Evento

Definizione

Viene generato dopo che la richiesta è stata autenticata.

public:
 event System::Web::Security::DefaultAuthenticationEventHandler ^ Authenticate;
public event System.Web.Security.DefaultAuthenticationEventHandler Authenticate;
member this.Authenticate : System.Web.Security.DefaultAuthenticationEventHandler 
Public Custom Event Authenticate As DefaultAuthenticationEventHandler 

Tipo evento

Esempio

Nell'esempio di codice seguente viene usato l'evento DefaultAuthentication_OnAuthenticate per verificare se la User proprietà dell'istanza corrente HttpContext è null. Se la User proprietà è null, l'esempio imposta la User proprietà dell'istanza corrente HttpContext su un GenericPrincipal oggetto in cui l'oggetto IdentityGenericPrincipal è un GenericIdentity con un Name valore "default".

Nota

L'evento DefaultAuthentication_OnAuthenticate viene generato prima dell'evento AuthorizeRequest . Di conseguenza, se si imposta la User proprietà dell'istanza corrente HttpContext su un'identità personalizzata, può influire sul comportamento dell'applicazione. Ad esempio, se si usa la FormsAuthentication classe e si specifica <deny users="?" /> nella sezione di configurazione dell'autorizzazione per assicurarsi che solo gli utenti autenticati abbiano accesso al sito, questo esempio causerà l'ignorare l'elemento deny , poiché l'utente avrà un nome, che è "predefinito". È invece necessario specificare <deny users="default" /> per assicurarsi che solo gli utenti autenticati possano accedere al sito.

public void DefaultAuthentication_OnAuthenticate(object sender,
                                                 DefaultAuthenticationEventArgs args)
{
  if (args.Context.User == null)
    args.Context.User = 
      new System.Security.Principal.GenericPrincipal(
        new System.Security.Principal.GenericIdentity("default"),
        new String[0]);
}
Public Sub DefaultAuthentication_OnAuthenticate(sender As Object, _
                                                args As DefaultAuthenticationEventArgs)
  If args.Context.User Is Nothing Then
    args.Context.User = _
      new System.Security.Principal.GenericPrincipal( _
        new System.Security.Principal.GenericIdentity("default"), _
        new String(0) {})
  End If
End Sub

Commenti

L'evento Authenticate viene generato dopo l'evento AuthenticateRequest . Viene usato per assicurarsi che la User proprietà dell'istanza corrente HttpContext venga popolata con un IPrincipal oggetto.

È possibile accedere all'evento Authenticate della DefaultAuthenticationModule classe specificando una subroutine denominata DefaultAuthentication_OnAuthenticate nel file Global.asax dell'applicazione.

È possibile utilizzare la Context proprietà dell'oggetto nell'evento DefaultAuthenticationEventArgsDefaultAuthentication_OnAuthenticate per impostare la User proprietà dell'istanza corrente HttpContext su un oggetto personalizzato IPrincipal . Se non si specifica un valore per la User proprietà, la DefaultAuthenticationModuleUser proprietà dell'istanza HttpContext viene impostata su un GenericPrincipal oggetto che non contiene informazioni utente.

L'evento DefaultAuthentication_OnAuthenticate viene generato dopo l'evento e prima dell'evento AuthenticateRequestAuthorizeRequest . Se si dispone di una authorization sezione che dipende dal nome utente da negare o consentire l'accesso all'applicazione, la modifica User della proprietà dell'istanza corrente HttpContext può influire sul comportamento dell'applicazione. Assicurarsi che il nome utente impostato durante l'evento DefaultAuthentication_OnAuthenticate venga considerato quando si specifica la sezione di autorizzazione nella configurazione.

Nota

Se l'applicazione Web è in esecuzione in IIS 7.0 in modalità integrata, l'evento Authenticate dell'oggetto DefaultAuthenticationModule non viene generato. Se l'attributo mode dell'elemento di configurazione di autenticazione è impostato su "None" e l'applicazione sottoscrive l'evento Authenticate , viene generato un PlatformNotSupportedException errore. In questo scenario, per ricevere la notifica di autenticazione, sottoscrivere l'evento AuthenticateRequest dell'istanza HttpApplication . Per altre informazioni sui problemi di compatibilità in modalità integrata, vedere Spostamento di un'applicazione ASP.NET da IIS 6.0 a IIS 7.0.

Si applica a

Vedi anche