LoginView和自定义验证ASP.NET WF

时间:2011-04-20 18:10:10

标签: c# asp.net web-applications webforms controls

我在MasterPage中有LoginView,当用户没有登录时,应用程序显示LoginControl.ascx。在这个LoginControl.ascx中,我进行了身份验证。问题是,当应用程序验证用户时,LoginView不会从匿名模板更改为验证模板。

protected void btnLogin_clicked(object sender, EventArgs e)
{
    // check username and password
    if (PlatneJmeno(txtUsernane.Text) && PlatneHeslo(txtPassword.Text))
    {
        if (Membership.ValidateUser(txtUsernane.Text, txtPassword.Text))
        {
            //FormsAuthentication.RedirectFromLoginPage(txtUsernane.Text, false);
            Response.Redirect(Request.RawUrl);
        }
        else
        {
            Session["LoginError"] = true;
            Session["LoginFromPage"] = Request.RawUrl;
            Response.Redirect("login.aspx");
        }
    }
    else
    {
        Session["LoginError"] = true;
        Session["LoginFromPage"] = Request.RawUrl;
        Response.Redirect("login.aspx");
    }
}

好的,完成......

FormsAuthentication.SetAuthCookie(txtUsernane.Text, false);

1 个答案:

答案 0 :(得分:0)

您遇到的问题似乎是由于对FormsAuthentication.RedirectFromLoginPage的注释被注释掉而引起的。

该调用删除了告诉ASP.NET用户已经过身份验证的cookie。如果没有cookie,ASP.NET会将未来的请求视为未经身份验证,并继续显示登录页面。