ASP.net modalpopup в событии loggedIn - PullRequest
0 голосов
/ 08 июня 2010

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

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

Одно из изменений, которое мне нужно сделать, - показать modalpopup (используя 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

1 Ответ

1 голос
/ 08 июня 2010

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

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

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