protected void Login(Users user) { if (user.Status == 1) { Response.Redirect("~/usernotification/4/" + user.Name); } else if (user.Status == 3) { Response.Redirect("~/usernotification/2/" + user.Name); } else { //проверка на доступ по WhiteList AuthenticationMethods.CheckAccessByWhiteList(user, HttpContext.Current); //обновляем\задаем авторизационную куку с данными пользователя AuthenticationMethods.SetUserCookie(user); //задаем авторизовачные куки для поднятия пользователя при крахе сеcии. byte[] bytLogin = System.Text.Encoding.UTF8.GetBytes(user.Login); var cookie = new HttpCookie("_AUTHGRB") { Value = user.Password + Convert.ToBase64String(bytLogin), Expires = cbRememberMe.Checked ? DateTime.Now.AddDays(15) : DateTime.Now.AddMinutes(60) }; Response.Cookies.Add(cookie); Response.Redirect(user.Role == "User" ? "~/UserUI/" : "~/ManagerUI/"); } }
protected override void OnInit(EventArgs e) { base.OnInit(e); //òóò ïðîâåðÿåì, åëè ñåèÿ ðàçðóøåíà îîòâåòñòâóþò ëè êóêè íóæíîìó ïîëüçîâàòåëþ. Åñëè ñîîòâåòòâóþò - ïîäíèìàåì ïîëüçîâàòåëÿ. Òàêèì îáðàçîì ïî êóêè ñåèÿ æèâåò ïîêà êóêè âåðû. var user = (Users)Session["userinsession"]; if (user == null) { var httpCookie = Request.Cookies["_AUTHGRB"]; if (httpCookie != null) { if (httpCookie.Value.Length > 33) { var authCookie = httpCookie.Value; var base64Login = authCookie.Remove(0, 32); byte[] byteLogin = Convert.FromBase64String(base64Login); var login = System.Text.Encoding.UTF8.GetString(byteLogin); var password = authCookie.Substring(0, 32); var userOld = new Users { Login = login }; userOld.GetByLogin(); if ((login == userOld.Login) && (password == userOld.Password)) { if (userOld.Status == 1) { //ðàçðóøàåì êóêè var cookie = new HttpCookie("_AUTHGRB") { Expires = DateTime.Now.AddDays(-1000) }; Response.Cookies.Add(cookie); //ðàçðóøàåì ñåññèþ Session["userinsession"] = null; Response.Redirect("~/"); } else { //проверка на доступ по WhiteList AuthenticationMethods.CheckAccessByWhiteList(userOld, HttpContext.Current); //обновляем\задаем авторизационную куку с данными пользователя AuthenticationMethods.SetUserCookie(userOld); } } } } } }