목차
C#에서 쿠키 읽기
백엔드 개발 C#.Net 튜토리얼 C#에서 쿠키 읽기 예제에 대한 자세한 설명

C#에서 쿠키 읽기 예제에 대한 자세한 설명

Sep 07, 2017 pm 03:06 PM
.net cookies

C#에서 쿠키 읽기

링크:

1. 쿠키 작성

 1. Name 및 Value 속성은 프로그램에 의해 설정되며 기본값은 빈 참조입니다.

  2. 도메인 속성의 기본값은 이 쿠키를 발행하는 페이지가 어느 디렉토리에 있는지에 관계없이 현재 URL의 도메인 이름 부분입니다.

기본 도메인 속성은 www.kent.com입니다. 이 속성은 프로그램에서 필요한 값으로 설정할 수 있습니다.

  3. Path 속성의 기본값은 이 쿠키를 보내는 페이지가 어느 디렉토리에 있는지에 관계없이 루트 디렉토리, 즉 "/"입니다. 이 쿠키의 범위는 프로그램에서 특정 경로로 설정하여 추가로 제한할 수 있습니다.

  4. 만료 속성, 이 속성은 이 쿠키의 만료 날짜와 시간을 설정합니다. 쿠키의 유효기간을 설정하지 않은 경우(기본 설정) 쿠키도 생성될 수 있으나, 이는 이용자의 하드 드라이브에 저장되지 않고 이용자의 세션 정보의 일부로 남게 됩니다. 쿠키는 쿠키가 생성될 때 사라집니다. 브라우저가 닫혔거나 세션 시간이 초과되었습니다. 이러한 유형의 쿠키를 비영구 쿠키라고 합니다. SessionID를 저장하는 쿠키는 하드디스크에 저장되지 않고 메모리에만 존재하는 쿠키입니다.

 5. Response의 Cookies 속성에 보낼 쿠키를 첨부하여 클라이언트에 쿠키를 보냅니다: Response.Cookies.Add(Cookie)

  6. 동일한 Domain 속성 + Path 속성을 가진 쿠키는 모두 클라이언트에 존재합니다. 파일에서 쿠키는 "*"로 구분됩니다. 각 쿠키의 첫 번째 줄은 쿠키의 이름, 두 번째 줄은 값, 세 번째 줄은 도메인 속성 + 경로 속성으로 구성된 문자열로 이 쿠키의 범위를 나타내며 나머지 줄은 일일 처리 정보를 포함합니다. 만료 날짜 및 시간과 같은 쿠키의 정보입니다. 쿠키에는 간단한 체크섬도 있으므로 쿠키 이름이나 값의 길이가 변경되면 브라우저는 수정 사항을 감지하고 쿠키를 삭제합니다.

2. 쿠키 읽기

1. Request.Cookies 속성에는 클라이언트가 서버로 보낸 모든 쿠키의 모음이 포함되어 있습니다. 요청 URL 범위 내의 쿠키만 브라우저에서 HTTP와 함께 요청됩니다. 요청이 서버로 전송되었습니다.

  2. Name 및 Value 속성과 하위 키 값은 읽기 쉽습니다.

  3. Domain 및 Path 속성은 읽을 수 없습니다. Domain 속성은 항상 ""이고 Path 속성은 항상 "/"입니다. 원래 이러한 속성은 사용이 제한되었습니다. 귀하의 페이지가 쿠키와 동일한 도메인에 있지 않으면 페이지 위치에서 쿠키가 전혀 수신되지 않습니다.

  4. 쿠키의 유효기간과 시간을 읽을 수 없습니다. 실제로 브라우저는 쿠키 정보를 서버로 보낼 때 만료 정보를 포함하지 않습니다. Expires 속성을 읽을 수 있지만 항상 날짜/시간 값 0을 반환합니다. Expires 속성의 주요 역할은 브라우저가 쿠키 저장에 대한 일상적인 관리를 수행하도록 돕는 것입니다. 서버의 관점에서 쿠키는 존재하거나 존재하지 않으므로 만료 날짜는 서버에 유용한 정보가 아닙니다. 따라서 브라우저는 쿠키를 보낼 때 이 정보를 제공하지 않습니다. 쿠키의 만료 날짜가 필요한 경우 다시 설정해야 합니다.

3. 쿠키 수정 및 삭제

1. 실제로 쿠키를 직접 수정할 수는 없습니다. 동일한 이름의 쿠키를 생성하고 해당 쿠키를 브라우저로 보내 클라이언트 컴퓨터의 이전 쿠키를 덮어써야 합니다. .

  2. 마찬가지로 쿠키를 직접 삭제할 수는 없습니다. 브라우저가 쿠키의 유효 기간을 확인할 때 쿠키의 유효 기간을 과거의 특정 시점으로 수정하도록 할 수 있습니다. 만료된 쿠키는 삭제됩니다. 유효 기간 수정 및 쿠키 삭제

IV. 쿠키와 세션의 관계

 1. asp.net의 세션은 쿠키와 쿠키 없는 두 가지 방법을 사용할 수 있습니다. 클라이언트와 서버 사이를 오가는 데에는 쿠키 사용이 필요하지 않으며 이 방법은 여기서 논의하지 않습니다.

  2. asp.net에서 클라이언트가 처음으로 URL을 요청하면 서버는 클라이언트에 대한 SessionID를 생성하고 이를 비영구 쿠키로 클라이언트에 보냅니다.

 3. 비영구 쿠키는 브라우저를 닫은 후에만 사라집니다. 세션 시간 초과 판단은 다음과 같습니다.

 3.1 클라이언트가 서버에 처음 액세스하면 비영구적인 SessionID가 부여됩니다. 쿠키가 클라이언트에게 전송됩니다.

  3.2 브라우저가 닫히기 전에 이 URL에 접속하면 브라우저는 SessionID를 서버로 보내고, 서버는 SessionID를 기반으로 클라이언트에 해당하는 서버의 다양한 상태(즉, 다양한 값 ​​세션에 저장됨) 이러한 세션은 웹 애플리케이션에서 작동할 수 있습니다.

 3.3 서버는 이 SessionID의 만료 시간을 유지하며, 세션 시간 초과는 IIS에서 설정할 수 있습니다. 각 요청으로 인해 서버는 설정된 제한 시간만큼 이 SessioID의 만료 시간을 연장합니다.

  3.4 서버에서 SessionID가 만료된 것을 발견하면, 즉 고객이 설정된 제한 시간 내에 사이트를 다시 방문하지 않은 경우 SessionID는 이 SessionID와 관련된 모든 Session 변수와 함께 삭제됩니다.

 3.5 클라이언트의 브라우저가 닫히기 전에는 서버가 SessionID를 삭제했다는 사실을 알지 못합니다. 클라이언트는 여전히 이 SessionID의 쿠키를 서버에 전송하지만 이때 서버는 더 이상 SessionID를 인식하지 못하고 사용자를 삭제하게 됩니다. . 신규 사용자로서 새로운 SessionID를 다시 할당하세요.

쿠키 생성:

gjy 값과 유효 기간 1일로 클라이언트에 사용자 이름 쿠키를 생성합니다.

방법 1:

Response.Cookies["username"].Value="zxf";
Response.Cookies["username"].Expires=DateTime.Now.AddDays(1);
로그인 후 복사

방법 2:

System.Web.HttpCookie newcookie=new HttpCookie("username");
newcookie.Value="gjy";
newcookie.Expires=DateTime.Now.AddDays(1);
Response.AppendCookie(newcookie);
로그인 후 복사

하위 키를 사용하여 쿠키 생성:

System.Web.HttpCookie newcookie=new HttpCookie("user");
newcookie.Values["username"]="zxf";
newcookie.Values["password"]="111";
newcookie.Expires=DateTime.Now.AddDays(1);
Response.AppendCookie(newcookie);
로그인 후 복사

또는:

System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
로그인 후 복사

쿠키 읽기:

하위 키 없이 읽기:

if(Request.Cookies["username"]!=null)
{
Response.Write(Server.UrlDecode(Request.Cookies["username"]));
로그인 후 복사

또는:

HttpContext.Current.Request.Cookies[strCookieName]
}
로그인 후 복사

하위 키로 읽기:

if(Request.Cookies["user"]!=null)
{
Response.Write(Server.UrlDecode(Request.Cookies["user"]["username"].Value));
Response.Write(Server.UrlDecode(Request.Cookies["user"]["password"].Value));
로그인 후 복사

추가하고 읽는 두 가지 방법:

추가:

Response.AppendCookie(newcookie);
System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
로그인 후 복사

읽기:

Request.Cookies["username"]
HttpContext.Current.Request.Cookies["username"]
로그인 후 복사

쿠키의 만료 시간을 설정하지 않는 한, 브라우저가 닫힐 때 쿠키는 자동으로 만료됩니다.

쿠키 수정 시간을 삭제하세요: Cookie.Expires = DateTime.Now.AddDays( -1 );

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

 
public class Cookie
{
    /// <summary>
    /// Cookies赋值
    /// </summary>
    /// <param name="strName">主键</param>
    /// <param name="strValue">键值</param>
    /// <param name="strDay">有效天数</param>
    /// <returns></returns>
    public bool setCookie(string strName, string strValue, int strDay)
    {
        try
        {
            HttpCookie Cookie = new HttpCookie(strName);
            //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
            Cookie.Expires = DateTime.Now.AddDays(strDay);
            Cookie.Value = strValue;
            System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
            return true;
        }
        catch
        {
            return false;
        }
    }

    /// <summary>
    /// 读取Cookies
    /// </summary>
    /// <param name="strName">主键</param>
    /// <returns></returns>
 
    public string getCookie(string strName)
    {
        HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies[strName];
        if (Cookie != null)
        {
            return Cookie.Value.ToString();
        }
        else
        {
            return null;
        }
    }

    /// <summary>
    /// 删除Cookies
    /// </summary>
    /// <param name="strName">主键</param>
    /// <returns></returns>
    public bool delCookie(string strName)
    {
        try
        {
            HttpCookie Cookie = new HttpCookie(strName);
            //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
            Cookie.Expires = DateTime.Now.AddDays(-1);
            System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
            return true;
        }
        catch
        {
            return false;
        }
    }
}
로그인 후 복사


예:

Cookie Cookie = new Cookie();
Cookie.setCookie("name", "aaa",1);//赋值
Cookie.getCookie("name");//取值
Cookie.delCookie("name");//删除
로그인 후 복사
로그인 후 복사
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
 
public class Cookie
{
    /// <summary>
    /// Cookies赋值
    /// </summary>
    /// <param name="strName">主键</param>
    /// <param name="strValue">键值</param>
    /// <param name="strDay">有效天数</param>
    /// <returns></returns>
    public bool setCookie(string strName, string strValue, int strDay)
    {
        try
        {
            HttpCookie Cookie = new HttpCookie(strName);
            //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
            Cookie.Expires = DateTime.Now.AddDays(strDay);
            Cookie.Value = strValue;
            System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
            return true;
        }
        catch
        {
            return false;
        }
    }
    /// <summary>
    /// 读取Cookies
    /// </summary>
    /// <param name="strName">主键</param>
    /// <returns></returns>
 
    public string getCookie(string strName)
    {
        HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies[strName];
        if (Cookie != null)
        {
            return Cookie.Value.ToString();
        }
        else
        {
            return null;
        }
    }
    /// <summary>
    /// 删除Cookies
    /// </summary>
    /// <param name="strName">主键</param>
    /// <returns></returns>
    public bool delCookie(string strName)
    {
        try
        {
            HttpCookie Cookie = new HttpCookie(strName);
            //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
            Cookie.Expires = DateTime.Now.AddDays(-1);
            System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
            return true;
        }
        catch
        {
            return false;
        }
    }
}
로그인 후 복사

예:

Cookie Cookie = new Cookie();
Cookie.setCookie("name", "aaa",1);//赋值
Cookie.getCookie("name");//取值
Cookie.delCookie("name");//删除
로그인 후 복사
로그인 후 복사

참고:쿠키가 중국어로 왜곡되면 저장 시 Cookie.setCookie("name")과 같이 중국어로 인코딩됩니다. , Server.UrlEncode("aaa"),1), 읽을 때 그냥 디코딩하세요

또한: 쿠키에 만료 시간이 설정되어 있지 않은 한 브라우저를 닫으면 쿠키가 자동으로 만료됩니다.

위 내용은 C#에서 쿠키 읽기 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

C#의 취업 전망은 어떻습니까? C#의 취업 전망은 어떻습니까? Oct 19, 2023 am 11:02 AM

초보자이든 숙련된 전문가이든 C#을 마스터하면 경력을 쌓는 길이 열릴 것입니다.

여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유 여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유 May 06, 2024 pm 04:43 PM

오늘날 인공지능(AI) 기술 개발은 본격화되고 있으며, 다양한 분야에서 큰 잠재력과 영향력을 보여주고 있습니다. 오늘 Dayao는 여러분에게 몇 가지 참고 자료를 제공하고자 4개의 .NET 오픈 소스 AI 모델 LLM 관련 프로젝트 프레임워크를 공유할 것입니다. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel은 OpenAI, Azure와 같은 대규모 언어 모델(LLM)을 통합하도록 설계된 오픈 소스 소프트웨어 개발 키트(SDK)입니다.

Java 프레임워크와 .NET 프레임워크 간의 성능 차이 Java 프레임워크와 .NET 프레임워크 간의 성능 차이 Jun 03, 2024 am 09:19 AM

높은 동시성 요청 처리 측면에서 .NETASP.NETCoreWebAPI는 JavaSpringMVC보다 성능이 뛰어납니다. 그 이유는 다음과 같습니다. 시작 시간을 줄여주는 AOT 조기 컴파일, 개발자가 개체 메모리 할당 및 해제를 담당하는 경우.

개발자를 위한 .NET 성능 최적화 기술 개발자를 위한 .NET 성능 최적화 기술 Sep 12, 2023 am 10:43 AM

.NET 개발자라면 고품질 소프트웨어 제공에 있어 기능과 성능 최적화의 중요성을 인식해야 합니다. 제공된 리소스를 전문적으로 활용하고 웹 사이트 로드 시간을 줄임으로써 사용자에게 즐거운 경험을 선사할 뿐만 아니라 인프라 비용도 절감할 수 있습니다.

Nginx가 손실된 쿠키를 전달하는 문제를 해결하는 방법 Nginx가 손실된 쿠키를 전달하는 문제를 해결하는 방법 May 15, 2023 pm 09:10 PM

1. 잃어버린 쿠키 작업 경로 1: http://localhost:8080/content/requestAction!showMainServiceReqDetail.action 경로 2: http://localhost/content/requestAction!showMainServiceReqDetail.action 경로 3: http://localhost/clp/ requestAction!showMainServiceReqDetail.action 경로 1은 직접 액세스이고, 경로 2는 경로와 동일합니다.

Scrapy가 프록시 IP, 사용자 에이전트 및 쿠키를 사용하여 크롤러 방지 전략을 피하는 방법 Scrapy가 프록시 IP, 사용자 에이전트 및 쿠키를 사용하여 크롤러 방지 전략을 피하는 방법 Jun 23, 2023 pm 01:22 PM

웹 크롤러가 개발됨에 따라 점점 더 많은 웹사이트와 서버가 데이터가 악의적으로 크롤링되는 것을 방지하기 위해 크롤러 방지 전략을 채택하기 시작했습니다. 이러한 전략에는 IP 차단, 사용자 에이전트 감지, 쿠키 확인 등이 포함됩니다. 해당 대응 전략이 없으면 당사 크롤러는 쉽게 악성으로 분류되어 금지될 수 있습니다. 따라서 이러한 상황을 방지하려면 Scrapy 프레임워크의 크롤러 프로그램에 프록시 IP, 사용자 에이전트, 쿠키와 같은 정책을 적용해야 합니다.

쿠키 사용에 대한 자세한 지침 쿠키 사용에 대한 자세한 지침 Feb 22, 2024 pm 12:21 PM

쿠키는 웹사이트에서 사용자의 개인 선호도와 행동에 대한 정보를 저장하는 데 사용되는 일반적인 웹 기술입니다. 오늘날 디지털 시대에 거의 모든 웹사이트는 개인화와 더 나은 사용자 경험을 제공하기 위해 쿠키를 사용합니다. 이 문서에서는 사용자가 이 기술을 더 잘 이해하고 숙달할 수 있도록 쿠키 사용에 대해 자세히 소개합니다. 먼저, 쿠키의 기본 개념을 이해해 봅시다. 쿠키는 웹사이트가 이용자의 브라우저에 저장하는 작은 텍스트 파일로서, 이용자의 웹사이트 방문에 관한 정보를 담고 있습니다.

임시 데이터를 저장하기 위해 sessionStorage 대신 어떤 방법을 사용할 수 있나요? 임시 데이터를 저장하기 위해 sessionStorage 대신 어떤 방법을 사용할 수 있나요? Jan 13, 2024 am 10:41 AM

임시 데이터를 저장하기 위해 sessionStorage를 바꾸는 방법은 무엇입니까? sessionStorage는 브라우저에 임시 데이터를 저장하기 위해 HTML5에서 제공하는 메커니즘입니다. 그러나 브라우저 간에 임시 데이터를 공유하고 싶거나 데이터 관리에 더 많은 유연성을 원하는 경우 sessionStorage에 대한 대안을 고려할 수 있습니다. 다음에서는 sessionStorage를 대체하는 여러 가지 방법을 소개하고 해당 코드 예제를 제공합니다. localStor 사용

See all articles