在asp.net中设置cookie.domain

在asp.net中设置cookie.domain,asp.net,Asp.net,试图在asp.net的cookie中设置一个域,我是asp.net的新手,所以想知道如何做到这一点 这是我的密码 // Create cookie var cookieData = new NameValueCollection(); cookieData["first_name"] = first_name; cookieData["last_name"] = last_name; var cookie = new CookieHeaderValue("UserInfo", cookieDa

试图在asp.net的cookie中设置一个域,我是asp.net的新手,所以想知道如何做到这一点

这是我的密码

// Create cookie
var cookieData = new NameValueCollection();
cookieData["first_name"] = first_name;
cookieData["last_name"] = last_name;

var cookie = new CookieHeaderValue("UserInfo", cookieData);
cookie.Expires = DateTimeOffset.Now.AddDays(1);
//cookie.Domain = Request.RequestUri.Host;
cookie.Domain = "example.com";
cookie.Path = "/";
需要将cookie设置为适用于srv1.example.com和srv2.example.com


当前通过Visual Studio运行并使用Request.RequestURI.Host将域指定为localhost。

如果设置此cookie的ASP.NET页面是从
http://localhost
表示您正在Visual Studio或本地IIS中运行应用程序,不能将
属性设置为与此不同的值


但是,如果您将应用程序部署在不同的服务器上,并从
example.com
访问它,则cookie的域属性将正确设置。

如果设置此cookie的ASP.NET页面是从
请求的http://localhost
表示您正在Visual Studio或如果是本地IIS,则不能将
属性设置为其他属性



但是,如果您将应用程序部署到另一台服务器上,并从
example.com
访问它,那么cookie的域属性将正确设置。

您确定知道您使用的是哪种语言编码吗?c#这是问题的原因,而不是获取cookie域的方式。谷歌。我来这里之前用过谷歌,因为我在网上找不到明确的答案google@user1833222只是不清楚当你说“当前正在运行Visual Basic”时,你确定你知道自己在用什么语言编码吗?c#这就是为什么会出错,而不是如何获得cookie的域。谷歌。我来这里之前用过谷歌,因为我在网上找不到明确的答案google@user1833222你说“当前通过Visual Basic运行”是不清楚的,但是为什么在我检查Firefox中的cookie时显示localhost你说的对,我是通过Visual Basic运行代码,在本地运行IIS,因此,您是说,使用我现有的代码,并在生产时将域设置为example.com,它应该使用适当的域并正确发送带有适当域的cookie。我已更新了我的答案。实际上,您不能将cookie域设置为与当前请求的域不同。那么,如果您将应用程序部署到生产环境并从
http://example.com
http://subdomain.example.com
则cookie的域属性将正确设置为
example.com
。我想说的是,你的代码很好。是的,但是为什么我在Firefox中检查cookies时它会显示localhost呢?你是对的,我是通过Visual Basic运行代码的,本地运行IIS,因此,您是说,使用我现有的代码,并在生产时将域设置为example.com,它应该使用适当的域并正确发送带有适当域的cookie。我已更新了我的答案。实际上,您不能将cookie域设置为与当前请求的域不同。那么,如果您将应用程序部署到生产环境并从
http://example.com
http://subdomain.example.com
则cookie的域属性将正确设置为
example.com
。所以我要说的是你的代码很好。