views:

87

answers:

1

Hi,

I'm implementing a Announcement system that is loosely based on this article:

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

One of the changes the i need to do is to show a modalpopup (using the ModalPopupExtender) after the user login if the user got announcement to read.

The pop-up does not show because the user get redirected after the LoggedIn event of the standard login control. How could I avoid that?

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
+1  A: 

I assume you're using the standard login control? If you want a little more control over the redirect behavior you can write your own login control and insert your own redirect logic.

Writing your own login control is fortunately very simple as you can tap into the .NET authorization methods pretty easily. After you capture the user's username/password you can verify and set the user's cookie using the lines below:

If Membership.ValidateUser(username, password) Then
    ' add your redirect logic here
    FormsAuthentication.SetAuthCookie(username, rememberMe)
End If
Chris Pebble
yes I'm using the "standard login control", updated the question.
DavRob60