我在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);
答案 0 :(得分:0)
您遇到的问题似乎是由于对FormsAuthentication.RedirectFromLoginPage的注释被注释掉而引起的。
该调用删除了告诉ASP.NET用户已经过身份验证的cookie。如果没有cookie,ASP.NET会将未来的请求视为未经身份验证,并继续显示登录页面。