0

我正在实施一个松散地基于这篇文章的公告系统:

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
4

1 回答 1

1

我假设您使用的是标准登录控件?如果您想对重定向行为进行更多控制,您可以编写自己的登录控件并插入自己的重定向逻辑。

幸运的是,编写自己的登录控件非常简单,因为您可以很容易地利用 .NET 授权方法。捕获用户的用户名/密码后,您可以使用以下行验证和设置用户的 cookie:

If Membership.ValidateUser(username, password) Then
    ' add your redirect logic here
    FormsAuthentication.SetAuthCookie(username, rememberMe)
End If
于 2010-06-08T14:47:08.560 回答