Condividi tramite


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 utilizzato 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 Identity dell'oggetto GenericPrincipal è un GenericIdentity con valore Name "default".

Nota

L'evento DefaultAuthentication_OnAuthenticate viene generato prima dell'eventoAuthorizeRequest. 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 , in quanto 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 utilizzato per assicurarsi che la User proprietà dell'istanza corrente HttpContext sia 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 DefaultAuthenticationModule proprietà dell'istanza HttpContext viene impostata User su un GenericPrincipal oggetto che non contiene informazioni sull'utente.

L'evento DefaultAuthentication_OnAuthenticate viene generato dopo l'evento AuthenticateRequest e prima dell'eventoAuthorizeRequest. Se si dispone di una authorization sezione che dipende dal nome utente da negare o consentire l'accesso all'applicazione, la User modifica 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 di DefaultAuthenticationModule non viene generato. Se l'attributo mode dell'elemento di configurazione dell'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 di . 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