Partager via


DefaultAuthenticationModule.Authenticate Événement

Définition

Se produit après l’authentification de la demande.

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 User propriété est null, l’exemple définit la User propriété de l’instance actuelle HttpContext sur un GenericPrincipal objet où l’objet GenericPrincipal est un GenericIdentity objet dont Name la Identity valeur est « default ».

Note

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, elle 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 d’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 de refus , 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 est utilisé pour 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é, la DefaultAuthenticationModuleUser propriété de l’instance HttpContext est définie 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.

Note

Si l’application web s’exécute dans IIS 7.0 en mode intégré, l’événement Authenticate 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