加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 为什么我的cookie没有设置?

发布时间:2020-12-15 08:37:59 所属栏目:百科 来源:网络整理
导读:我正在玩ASP.NET,并尝试在一个动作中设置一个cookie,这个动作将在另一个动作中读取. 奇怪的是:cookie被设置,但在访问另一个页面时失去了它的价值.这是我简单的控制器代码: public class HomeController : Controller{ public ActionResult About() { var c
我正在玩ASP.NET,并尝试在一个动作中设置一个cookie,这个动作将在另一个动作中读取.

奇怪的是:cookie被设置,但在访问另一个页面时失去了它的价值.这是我简单的控制器代码:

public class HomeController : Controller
{
    public ActionResult About()
    {
        var cookie = Response.Cookies.Get("sid");
        ViewData["debug"] = "Id: " + cookie.Value;

        return View();
    }

    public ActionResult DoLogin()
    {
        var cookie = new HttpCookie("sid",Guid.NewGuid().ToString());
        cookie.HttpOnly = true;
        Response.Cookies.Add(cookie);

        return RedirectToAction("About");
    }
}

流程是这样的:首先我访问/ Home / DoLogin,然后我被重定向到/ Home / About哪个应该实际输出sid cookie的值.但是cookie没有任何价值.

>我的浏览器未禁用Cookie
>我知道ASP.NET有自己的会话处理机制,只是玩弄并偶然发现这个cookie问题

谢谢你的任何提示!

解决方法

在“关于”操作中,请改用Request.Cookies.

作为一个简短的解释:当您在Response.Cookies中设置某些内容时,该cookie将被发送到存储它的客户端.在到达相同名称空间的每个后续请求中,在到达到期日期之前,客户端将该cookie发送到服务器,服务器将其存储在Request.Cookies中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读