Вы всегда проверяете имя пользователя и пароль, но затем фактически перенаправляете, только если пользователь установил флажок «Запомнить меня» - это выглядит неправильно. Может ли быть совпадение, что вы отметили галочкой в одних тестовых сессиях, но не в других? ;)
Кроме того, вы на самом деле не сохраняете тот факт, что пользователь вошел в систему где-либо, поэтому не возникнут ли у вас проблемы позже, когда User.Identity.IsAuthenticated
все еще имеет значение false?
Вы должны использовать что-то вроде
Метод FormsAuthentication.RedirectFromLoginPage независимо от того, установлен флажок или нет ...
Если вы хотите выполнить перенаправление самостоятельно, вы должны использовать FormsAuthentication.SetAuthCookie , а затем выполнять перенаправление.
РЕДАКТИРОВАТЬ : как-то так
string userName = LoginUserName.Text;
string password = LoginPassword.Text;
if (Page.IsValid)
{
if (Membership.ValidateUser(userName, password))
{
if (RemeberMe.Checked)
{
// Set your own cookie here or something that you will later check for in Page_Load etc
}
// Need to tell ASP.NET authentication was successful
System.Web.Security.FormsAuthentication.SetAuthCookie(userName, True)
Response.Redirect("~/Home.aspx");
}
}