Модальное всплывающее окно ASP.net в событии loggedIn

Я внедряю систему объявлений, основанную на этой статье:

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

Одно из изменений, которое мне нужно сделать, это показать модальное всплывающее окно (используя ModalPopupExtender) после входа пользователя в систему, если пользователь получил объявление для чтения.

Всплывающее окно не отображается, поскольку пользователь перенаправляется после события LoggedIn стандартного элемента управления входом в систему. Как я мог этого избежать?

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

person DavRob60    schedule 08.06.2010    source источник


Ответы (1)


Я предполагаю, что вы используете стандартное управление входом в систему? Если вы хотите немного больше контролировать поведение перенаправления, вы можете написать свой собственный элемент управления входом в систему и вставить свою собственную логику перенаправления.

К счастью, написать собственный элемент управления входом в систему очень просто, так как вы можете довольно легко подключиться к методам авторизации .NET. После того, как вы зафиксируете имя пользователя/пароль пользователя, вы можете проверить и установить файл cookie пользователя, используя следующие строки:

If Membership.ValidateUser(username, password) Then
    ' add your redirect logic here
    FormsAuthentication.SetAuthCookie(username, rememberMe)
End If
person Chris Van Opstal    schedule 08.06.2010
comment
да, я использую стандартный контроль входа в систему, обновил вопрос. - person DavRob60; 08.06.2010