C# 如何将httpcookie与特定数据一起使用?

C# 如何将httpcookie与特定数据一起使用?,c#,asp.net-mvc,cookies,C#,Asp.net Mvc,Cookies,我有一个cookie,但我需要UserID中的cookie 我写在cookie用户ID中,并且需要访问该用户ID的每个页面 我可以访问我的cookie“response”,但这个数据非常大,我需要的只是用户ID内的响应 这是我的代码: public IActionResult Index() { string cookie = HttpContext.Request.Cookies["response"]; ViewData["Cookie"] = coo

我有一个cookie,但我需要UserID中的cookie

我写在cookie用户ID中,并且需要访问该用户ID的每个页面

我可以访问我的cookie“response”,但这个数据非常大,我需要的只是用户ID内的响应

这是我的代码:

public IActionResult Index()
    {
        string cookie = HttpContext.Request.Cookies["response"];
        ViewData["Cookie"] = cookie;
        return View();
    }
我在寻找这个主题,找到了一条路

这是一个新代码,但它不起作用

            var computername = HttpContext.Request.Cookies["response"].Value;
这是另一种方法,但不起作用

      int User_id;
        HttpCookie reqCookies = HttpContext.Request.Cookies["response"];
        if (reqCookies != null)
        {
            User_id = reqCookies["UserID"].ToString();
            ViewData["Cookie"] = User_id;

        }
如何访问用户ID 53

这是我的饼干

  • 金大德·德奥尔
  • Furkan地方当局c557cfef-fa95-4b5a-8dce-fe01bfa94737
  • 清单项目Furkan地方当局

  • 4.Furkan Internal UserID 53

    首先:在读取Cookie的值之前,我看不到您将数据保存在Cookie中的什么位置

    Second:将cookie另存为对象,然后在接收后将其再次强制转换到此对象并选择所需的属性

    我在示例中使用了UserDTO作为保存用户数据的用户对象

    登录后

    public IActionResult Login(UserDTO user)
    {
        ...
    
        // after validating and login success
        var cookie = new HttpCookie("response", user);
        cookie.Expires = DateTime.Now.AddDays(30);
        Response.Cookies.Add(cookie); // use here Response.Cookies not Request.Cookies
        ...
    
        return View();
    }
    

    以及

    var computername = HttpContext.Request.Cookies["response"].Value as UserDTO; // to prevent casting exception .. will return null if cast faild
    if(computername != null) 
    {
        computername.Name;// will return Kim 
        computername.UserId;// will return 53 
    }
    

    我很难理解这个问题。看起来好像cookie中有大量数据,并且希望从中获取一些特定数据?如果是这样的话,我建议将您的数据分成更小的cookie,或者使用不同的机制(如隐藏字段)来保存您的数据。我正在编辑问题。这不是一个很大的数据,我认为它较小,但“我是新的”无法解决这个问题
    var computername = HttpContext.Request.Cookies["response"].Value as UserDTO; // to prevent casting exception .. will return null if cast faild
    if(computername != null) 
    {
        computername.Name;// will return Kim 
        computername.UserId;// will return 53 
    }