登录状态未显示已登录

时间:2012-03-11 17:58:46

标签: c# asp.net c#-4.0 forms-authentication loginview

我有一个网站,用户登录。我使用asp:Login。登录页面工作正常,但我已关联一个事件处理程序,当用户登录该站点时,将被重定向到一个身份验证页面,该页面将以这种方式发送用户名。

 protected void LoginUserPass_LoggingIn(object sender, LoginCancelEventArgs e)
        {

            Response.Redirect("~/Authenticate.aspx?user=" + LoginUserPass.UserName);
        }

我已将LoginView的DestinationPageUrl设置为"~/Authenticate.aspx"。一旦用户通过身份验证,就会发生另一个重定向到成员页面。但是在我的会员页面中,它并未显示用户已登录。

    <asp:LoginStatus ID="LoginStatus1" runat="server" 
        LogoutAction="Redirect" BackColor="White" 
        Font-Underline="True" LogoutPageUrl="~/Default.aspx" />

我哪里错了?

1 个答案:

答案 0 :(得分:1)

  

当用户登录该站点时将被重定向...

如果用户使用用户名和密码登录,那么您重定向,您的用户在重定向LogginIn事件之前未登录:

Login.LoggingIn Event

  

当用户提交登录信息但在用户在网站上进行身份验证之前,会引发 LoggingIn 事件。在对用户进行身份验证之前,请使用LoggingIn事件设置所需的任何信息。

改为使用LoggedIn:

Login.LoggedIn Event

  

在身份验证提供程序检查用户凭据并且身份验证cookie排队等待在下一个响应中发送到浏览器之后,将引发 LoggedIn 事件。在用户通过身份验证后,使用LoggedIn事件提供其他处理,例如访问每用户数据。