проблема автоматического выхода пользователя из системы после обновления страницы или изменения страницы или через несколько минут - PullRequest
0 голосов
/ 26 декабря 2018

я использую этот код для входа в систему в моем API:

var ticket = new FormsAuthenticationTicket(
    1,
    CurrentCustommer.PhoneNumber,
    DateTime.Now,
    DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes),
    false,
    "user,user1",
    FormsAuthentication.FormsCookiePath
);
var encryptedTicket = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)
{
    HttpOnly = true,
    Secure = FormsAuthentication.RequireSSL,
    Path = FormsAuthentication.FormsCookiePath,
    Domain = FormsAuthentication.CookieDomain
};
HttpContext.Current.Response.AppendCookie(cookie);

мой код веб-конфигурации:

<authentication mode="Forms">
  <forms loginUrl="Login.aspx" protection="All" timeout="10080" slidingExpiration="true">
  </forms>
</authentication>
<compilation debug="true" targetFramework="4.6.2" />
<httpRuntime targetFramework="4.6.2" />
<pages enableSessionState="true" validateRequest="false"></pages>
<sessionState mode="InProc" cookieless="false" timeout="10080" />

сейчас.пользователь после входа в систему и через несколько минут и обновления страницы или изменения страницы на сайте, Автоматически Журнал отключен;Я вижу файлы cookie, сохраненные через «document.cookie» в консоли Chrome.эта проблема не существует на локальном хосте, но при использовании сервера эта проблема показала: /

Кроме того, я добавляю, что я использую свою настроенную базу данных и не использую поставщика членства sql asp.net.

Нужно ли применять определенные настройки при вызове метода API для входа пользователя?Или мне нужно применить другие конфигурации?

На самом деле я не знаю, как решить эту проблему.

спасибо всем.

ОБНОВЛЕНИЕ: я проверяю аутентификацию пользователя по этому коду:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.User.Identity.IsAuthenticated)
    {
        //Page.Response.Redirect("/");
        MainContainer.Visible = false;
        Page.ClientScript.RegisterStartupScript(this.GetType(), 
        "CallMyFunction", "LoginForm()", true);
    }
}

для получения дополнительной информации. И теперь я вижу Page.User.ExpireDate в вахте в Page_Load, на этот раз через 30 минут после входа в систему пользователя.

1 Ответ

0 голосов
/ 26 декабря 2018

cookieless = "false" вы можете просто попробовать использовать свойство cookieless по умолчанию или true

...