C # MVC3 и членство держат меня в системе (помните меня) - PullRequest
1 голос
/ 12 сентября 2011

Я использую функции членства в своем приложении, и у меня есть следующий код входа в систему:

if (!Membership.ValidateUser(email, password))
{
    ViewBag.Message = "E-mail ou senha estão incorretos.";
    return View();
}
else
{
    FormsAuthentication.Authenticate(email, password);
    var keep = keepMeLoggedIn == "true,false" ? true : false;
    FormsAuthentication.SetAuthCookie(email, keep);
    return Redirect("~/Home/Mural");
}

Со вчерашнего дня и до сегодняшнего дня, когда я снова открыл свое приложение, я не вошел в систему ... Яслышали о том, что когда вы генерируете постоянный cookie, сессия никогда не заканчивается, это правда?Что я делаю не так?Должен ли я поместить какую-то информацию в web.config?

<authentication mode="Forms">
  <forms name=".ASPXAUTH" loginUrl="~/Usuario/Login" protection="All" timeout="360"   cookieless="UseDeviceProfile" />
</authentication>

Кто-нибудь может помочь?

1 Ответ

1 голос
/ 12 сентября 2011
var keep = keepMeLoggedIn == "true,false" ? true : false;

Этот код меня немного беспокоит. Однако я не думаю, что это является причиной проблемы.

Но постоянный файл cookie имеет срок действия (тайм-аут), который определяется в том, что вы показали, тегом аутентификации.

Единственное различие между cookie-файлом сеанса и постоянным cookie-файлом заключается в том, что срок действия cookie-файла сеанса истекает, если пользователь закрывает браузер или время его ожидания истекло. Срок действия постоянного файла cookie истекает только после истечения времени ожидания.

Второй параметр SetAuthCookie - создавать постоянный файл cookie или нет. Если false, это будет сеанс, если true, он будет постоянным.

...