DefaultAuthenticationModule.Authenticate Événement

Définition

Se produit après l'authentification de la requête.

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 

Type d'événement

Exemples

L’exemple de code suivant utilise l’événement DefaultAuthentication_OnAuthenticate pour tester si la User propriété de l’instance actuelle HttpContext est null. Si la propriété a la User valeur null, l’exemple définit la User propriété de l’instance actuelle HttpContext sur un GenericPrincipal objet où le Identity de l’objet GenericPrincipal est un GenericIdentity avec la Name valeur « default ».

Notes

L’événement DefaultAuthentication_OnAuthenticate est déclenché avant l’événementAuthorizeRequest. Par conséquent, si vous définissez la User propriété de l’instance actuelle HttpContext sur une identité personnalisée, cela peut affecter le comportement de votre application. Par exemple, si vous utilisez la FormsAuthentication classe et que vous spécifiez <deny users="?" /> dans la section configuration de l’autorisation pour vous assurer que seuls les utilisateurs authentifiés ont accès à votre site, cet exemple entraîne l’ignorer de l’élément deny , car l’utilisateur aura un nom, qui est « par défaut ». Au lieu de cela, vous devez spécifier <deny users="default" /> pour vous assurer que seuls les utilisateurs authentifiés peuvent accéder à votre site.

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

Remarques

L’événement Authenticate est déclenché après l’événement AuthenticateRequest . Il permet de s’assurer que la User propriété de l’instance actuelle HttpContext est remplie avec un IPrincipal objet .

Vous pouvez accéder à l’événement Authenticate de la DefaultAuthenticationModule classe en spécifiant une sous-routine nommée DefaultAuthentication_OnAuthenticate dans le fichier Global.asax de l’application.

Vous pouvez utiliser la Context propriété de l’objet DefaultAuthenticationEventArgs dans l’événement DefaultAuthentication_OnAuthenticate pour définir la User propriété de l’instance actuelle HttpContext sur un objet personnalisé IPrincipal . Si vous ne spécifiez pas de valeur pour la User propriété , définit DefaultAuthenticationModule la User propriété de l’instance HttpContext sur un GenericPrincipal objet qui ne contient aucune information utilisateur.

L’événement DefaultAuthentication_OnAuthenticate est déclenché après l’événement AuthenticateRequest et avant l’événementAuthorizeRequest. Si vous avez une authorization section qui dépend du nom d’utilisateur pour refuser ou autoriser l’accès à votre application, la modification de la User propriété de l’instance actuelle HttpContext peut affecter le comportement de votre application. Assurez-vous que le nom d’utilisateur que vous avez défini pendant l’événement DefaultAuthentication_OnAuthenticate est pris en compte lorsque vous spécifiez la section d’autorisation dans votre configuration.

Notes

Si l’application web s’exécute dans IIS 7.0 en mode intégré, l’événement Authenticate de n’est DefaultAuthenticationModule pas déclenché. Si l’attribut mode de l’élément de configuration d’authentification est défini sur « None » et que l’application s’abonne à l’événement Authenticate , une PlatformNotSupportedException erreur est générée. Dans ce scénario, pour recevoir une notification d’authentification, abonnez-vous à l’événement AuthenticateRequest de l’instance HttpApplication . Pour plus d’informations sur les problèmes de compatibilité en mode intégré, consultez Déplacement d’une application ASP.NET d’IIS 6.0 vers IIS 7.0.

S’applique à

Voir aussi