首页 > 解决方案 > 如何在 ASP.NET C# MVC 中为特定域设置 cookie

问题描述

我想为特定域设置 cookie,以便在抓取网站时用 C# 获取英文版本的数据。假设一个网站www.xyz.com有四种语言版本,包括英语。数据库中的实际数据是任何其他语言的(假设是瑞典语)。在爬取网站获取其所有链接和文本时,需要获取英文版的内容。这就是为什么我想在那里设置cookies。但它不起作用。请检查下面的代码来设置英文版的cookie。

if (_domain == "www.xyz.com")
{
    HttpCookie CreateLangCookie()
    {
        HttpCookie cookie = new HttpCookie("Cookies");
        cookie.Name = "lang";
        cookie.Value = "en";
        cookie.Domain = ".xyz.com";
        cookie.Path = "/";
        cookie.Expires = DateTime.MaxValue;
        return cookie;
    }
    Response.Cookies.Add(CreateLangCookie());
}

标签: c#asp.netasp.net-mvc

解决方案


您可能希望扩展您的问题以注意“不工作”的含义并包括您正在使用的浏览器,但解决方案可能是不使用显式 cookie,如本答案中所述:Cookies with and without the Domain Specified (浏览器不一致)


推荐阅读