有一个solution, 里面有两个asp.net web project, 在VS里启动调试,两个网站都运行起来了,占用的是不同的localhost端口,但是为什么A网站的Theme的更改会影响另一个也切换到相同的Theme呢?按理说这算是两个独立的网站,根本就不存在那个Theme所以挂掉了。
能不能为Cookie设置端口号呢?
cookie 是根据域名和Name 来区分的,你可以为两个网站设置不同的 Name,在web.config 中:
<authentication mode="Forms">
<forms name = ".xxxxxxx" />
高人七级啊,经测试,不行。据我理解,这里forms标签的name属性是只是为asp.net用户身份验证票据所设置的cookie存储名称,和自己写的cookie没有半毛钱的关系。
@沧海一杰: 你自己写的 Cookie 是咋写的?
这样吗:HttpCookie acookie = new
HttpCookie("last");
acookie.Value="a";
acookie..Expires=DateTime.MaxValue;
Response.Cookies.Add(acookie);
这里也是可以设置名称的。
@Launcher: 是啊,但这里写在一个基类里的,两个网站继承自一个基类,怎么改都很麻烦
void BasePage_PreInit(object sender, EventArgs e) { var theme = ConfigHelper.DefaultTheme; if (!string.IsNullOrEmpty(this.SelectedTheme)) { theme = this.SelectedTheme; } this.Theme = theme; } public string SelectedTheme { set { HttpCookie cookie = new HttpCookie(CookieConstant.SelectedTheme); cookie.Value = value; Response.SetCookie(cookie); HttpCookie a; System.Net.Cookie b; } get { var cookie = Request.Cookies[CookieConstant.SelectedTheme]; if (cookie == null || cookie.Value == null) return null; else return cookie.Value; } }
@沧海一杰:
@沧海一杰: HttpCookie(CookieConstant.SelectedTheme); 在这里,把名称改成:
HttpCookie(CookieConstant.SelectedTheme + PortNumber);
@Launcher: 咦,这好像是个好办法哦,试试
@沧海一杰: 高人七级不愧为高人。办法很简单,为什么我就没想到呢? 摇头,摇头,再摇头。