编码的Cookie错误

时间:2011-08-12 10:46:05

标签: asp.net cookies encoding

我的应用程序分为3个不同的层。 WEB,BLL和DAL。 我从网络层设置了一个cookie,然后我从另一个页面请求它将它显示给用户。

HttpContext.Current.Response.Cookies["FlashMessenger"]["Type"] = "error";
HttpContext.Current.Response.Cookies["FlashMessenger"]["Message"] = "Aucun vol trouvé pour la date donnée. S'il vous plaît affiner votre recherche.";

当我从BLL做同样的事情并试图显示它时,返回的消息就会被破坏。

var flashMessengerC = Request.Cookies["FlashMessenger"];
var message = flashMessengerC["Message"];
var type = flashMessengerC["Type"];
MsgLBL.Text = message;

这就是我收到的“Aucunvoltrouvépour la datedonnée.S'ilvousplaétaffinervotre recherche。”

我尝试对Html进行编码,然后解码,但它也是如此。 我查看了浏览器cookie并且格式正确。

是什么导致这个?

我将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

无法100%确定,但听起来您的BLL正在为您的UI运行不同的线程文化。让你的BLL请求cookie并不是一个好的设计 - 最好将他们实际需要的信息传递给他们,而不是将它绑定到特定的实现,例如:

class FlashMessengerInfo
{
     public string Message { get; set; }
     public string Type { get; set; }
}

class MyBLL
{
   public MyBLL(FlashMessengerInfo messageInfo)
   {
   }
}

来自web ui,你将填充这个对象并将其传递给你的BLL,让它与HttpRequest对象脱钩。