FormsAuthentication перенаправляет на страницу входа, даже если срок действия не истек - PullRequest
0 голосов
/ 13 декабря 2018

Я создал Httpcookie с FormsAuthentication.Я написал как ниже.Время истечения было создано как 2019-12-13T06: 44: 35.508Z в chrome.

в файле web.Config;

 <authentication mode="Forms">
  <forms name="qwe" loginUrl="~/login.aspx"
  protection="All" path="/" timeout="525600" />
</authentication>
<sessionState mode="InProc" timeout="525600" />
<authorization>
  <deny users ="?" />
  <allow users = "*" />
</authorization>

Создание файла cookieПри входе в систему;

 Session["additionalInfo"]="w1";
 int timeout = remember ? 525600 : 30;
 var ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, 
 DateTime.Now.AddMinutes(timeout), remember, userId);
 string encrypted = FormsAuthentication.Encrypt(ticket);
 var cookie = new HttpCookie("qwe", encrypted);
 cookie.Expires = System.DateTime.Now.AddMinutes(timeout);
 Response.Cookies.Add(authCookie);

в Global.asax; // сеанс теряет свое значение примерно на 20 или меньше, чем на 20 минут.Я сохраняю это значение здесь, чтобы обновить его.

//first times session comes null in aspnet webform, i use actual code if it is really exist.


   if (HttpContext.Current.Session != null)
        {
            var authCookie = HttpContext.Current.Request.Cookies["qwe"];
            if (authCookie != null)
            {
                FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
                if (authTicket != null && !authTicket.Expired)
                {
                    if (HttpContext.Current.Session["additionalInfo"] == null)
                    {
                        JavaScriptSerializer serializer = new JavaScriptSerializer();
                        var userId = serializer.Deserialize<int>(authTicket.UserData);
                        var dr = new UserFinder().GetUserDr(userId);
                        HttpContext.Current.Session["additionalInfo"] = "w1";
                    }
                }
            }
        }
...