0

Je mettre en place un système d'annonce qui est vaguement basé sur cet article:ASP.net ModalPopup dans l'événement loggedIn

http://www.4guysfromrolla.com/articles/110409-1.aspx

L'un des changements que je dois le faire est de montrer un ModalPopup (en utilisant ModalPopupExtender) après la connexion de l'utilisateur si l'utilisateur a reçu l'annonce à lire. La fenêtre contextuelle ne s'affiche pas car l'utilisateur est redirigé après l'événement LoggedIn du contrôle de connexion standard. Comment pourrais-je éviter cela?

Protected Sub Login1_LoggedIn(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.LoggedIn 
     'See if this user has unread announcements 
     Dim announcementAPI As AnnouncementBLL = New AnnouncementBLL 
     Dim UnreadAnnouncementCount As Integer= announcementAPI.GetUnreadAnnouncementCount(Login1.UserName) 
     If UnreadAnnouncementCount > 0 Then 
      UnreadAnnouncementMessage.Text = String.Format("You have {0} Announcement that you did not read yet.", UnreadAnnouncementCount) 
      'Show modal popup for announcement! 
      UnreadAnnouncementModalPopup.Show() 

      'add soothing so user don't get redirected. 

     End If 

    End Sub 
Protected Sub Read_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Read.Click 
     Response.Redirect(String.Format("~/Announcements.aspx?RedirectUrl={1}", _ 
           Server.UrlEncode(FormsAuthentication.GetRedirectUrl(Login1.UserName, False)))) 

    End Sub 

    Protected Sub Ignore_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Ignore.Click 
     Response.Redirect(FormsAuthentication.GetRedirectUrl(Login1.UserName, False)) 
    End Sub 

Répondre

1

Je suppose que vous utilisez le contrôle de connexion standard? Si vous voulez un peu plus de contrôle sur le comportement de redirection, vous pouvez écrire votre propre contrôle de connexion et insérer votre propre logique de redirection.

Ecrire votre propre contrôle de connexion est heureusement très simple car vous pouvez accéder aux méthodes d'autorisation .NET assez facilement. Après avoir capturé en utilisant les lignes ci-dessous du nom d'utilisateur de l'utilisateur/mot de passe, vous pouvez vérifier et définir l'utilisateur cookie:

If Membership.ValidateUser(username, password) Then 
    ' add your redirect logic here 
    FormsAuthentication.SetAuthCookie(username, rememberMe) 
End If 
+0

oui J'utilise le « contrôle de connexion standard », mis à jour la question. – DavRob60