¿Cómo eliminar una cookie de un cliente?

programación


Hola, hay algo que no entiendo sobre las cookies. Cuando se crea una cookie, se crea en el navegador del cliente, puedo ver la cookie que creé en las cookies del navegador. Ahora 2 usuarios iniciaron sesión en diferentes momentos por marcando recuérdame, se crearon 2 cookies en el navegador de ambos. Cuando uno de los usuarios cierra sesión, aunque no puedo eliminar físicamente la cookie, dice que solo puedo actualizar la fecha de caducidad. Digamos que hice esto, aquí es donde no puedo entender, cuando cierro la sesión, selecciono el nombre de la cookie allí y la elimino o restablezco la fecha,

pero ¿cómo sabe el servidor a qué cliente pertenece este proceso? Porque cuando la creo, solo doy un nombre de cookie genérico, en resumen, no se crea un cookie_client_id específico del usuario, cuando elimino la cookie, ya que hago esto en el servidor, ¿esta eliminación de cookies no ocurrirá para otros usuarios? En resumen, mi pregunta es ¿cómo sabe que solo se debe eliminar la cookie de x usuario cuando un usuario cierra sesión? gracias

Lo que he probado:

Intenté eliminar la cookie del servidor pero fallé.

Solución 1

El servidor no. El Cliente lo hace.

El navegador almacena las cookies en la máquina cliente bajo el usuario actual (Windows, Linux, Android o lo que sea), y dado que cada usuario en una máquina tiene áreas de datos separadas, el navegador las almacena en los datos del usuario actual (no tiene acceso a cualquier otro).

Entonces, cuando el servidor accede a las cookies, las solicita al navegador, que accede a los datos del usuario actual para obtener la información correcta.

Los usuarios del servidor son diferentes: son una “construcción” que utiliza la información de las cookies del navegador para decidir qué usuario del servidor iniciar sesión en su sitio. Cuando ese usuario cierra sesión, cierra sesión en su sitio, lo que no afecta las cookies a menos que el código de su sitio escriba específicamente nuevos datos de cookies.

Solución 2

I know that cookies are stored on the browser in the client's user profile, the server already writes it into a cookie on the browser. My question is that when the client wants to log out, it notifies the server, but this logout process takes place on the server side, for example 


<pre lang="C#">public ActionResult Logout()
        {
        
            Session.Clear();
            Session.Abandon();
            Session.RemoveAll();

            FormsAuthentication.SignOut();
            HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
            cookie1.Expires = DateTime.Now.AddYears(-1);
            Response.Cookies.Add(cookie1);

            return RedirectToAction("Index", "Login");
        }

Aquí dice FormsAuthentication.SignOut(); y envía un nuevo archivo cookie al cliente restableciendo la fecha. Entonces, ¿podemos decir que el servidor recrea el archivo de cookies y crea un nuevo archivo de cookies actualizando la fecha y lo envía al navegador, el navegador sobrescribe el nuevo archivo de cookies con el existente e impide que la cookie funcione? Si esto es así, el navegador no envía una cookie antigua al servidor de todos modos al mirar la fecha y hora de la cookie al realizar una solicitud desde el sitio, ¿verdad? Entonces, en el lado del servidor, no necesito verificar si esta cookie es antigua o no; si es antigua, ¿nunca va al servidor de todos modos?

No entiendo la diferencia entre una cookie normal y FormsAuthentication y nuevamente no entiendo la diferencia entre crear una cookie con FormsAuthentication y FormsAuthentication.SetAutCookie

C#
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
        username,
        DateTime.Now,
        DateTime.Now.AddMinutes(30),
        isPersistent,
        userData,
        FormsAuthentication.FormsCookiePath)

;

C#
HttpCookie userInfo = new HttpCookie("userInfo");
userInfo["UserName"] = "Annathurai";
userInfo["UserColor"] = "Black";
userInfo.Expires.Add(new TimeSpan(0, 1, 0));
Response.Cookies.Add(userInfo);

コメント

タイトルとURLをコピーしました