2010-10-13 4 views
0

J'ai un contrôle de consignation imbriqué dans une vue de connexion. Lorsque je clique sur le lien de fermeture de session, ma méthode `Contrôles d'appartenance à asp.net, Login1_LoggingOut n'est pas appelé lorsque vous cliquez sur la fermeture de session

protected void LoginStatus1_LoggingOut(object sender, EventArgs e) 
     { 
      Guid guidUserId = AuthenticatedUser.LoginUserID; 
      if (guidUserId != new Guid()) 
      { 
       PortalDataContext db = new PortalDataContext(AuthenticatedUser.ConnectionString); 
       var user = AuthenticatedUser.GetUser(guidUserId); 
       if (user != null) 
       { 
        user.LastActivityDate = user.LastActivityDate.AddMinutes(-16); 

        db.SubmitChanges(); 
       } 
      } 
     } 

` est jamais appelé. Je pense que cela a quelque chose à voir avec l'imbrication du contrôle dans une vue de connexion. Comment puis-je contourner cela pour pouvoir mettre à jour la base de données? J'ai besoin de réinitialiser la dernière fenêtre d'activité des utilisateurs à 16 minutes auparavant, donc je peux dire si l'utilisateur est toujours dans le système et inactif ou s'ils se sont complètement déconnectés.

+0

Pouvez-vous nous montrer le balisage déclaratif pour le contrôle LoginStatus? Il existe une propriété que vous pouvez définir qui a un rendu en tant que lien hypertexte plutôt que LinkButton - dans ce cas, il n'y a pas de publication lorsqu'un utilisateur se déconnecte. –

Répondre

0

Essayé cela et cela a fonctionné pour moi. Êtes-vous sûr que votre événement est connecté? Pouvez-vous nous montrer le balisage déclaratif pour le contrôle LoginStatus?

<asp:LoginView runat="server"> 
     <LoggedInTemplate> 
      <asp:LoginStatus ID="LoginStatus1" runat="server" 
       LogoutAction="Redirect" LogoutPageUrl="Login.aspx" OnLoggingOut="LoginStatus1_LoggingOut" /> 
     </LoggedInTemplate> 
    </asp:LoginView> 
Questions connexes