2009-09-03 53 views
2

我有一个CurrentUser类,其静态属性的值在上次访问网站时存储在cookie中。我希望能够从这个类读取cookie的价值。可能吗?它看起来像Request.Cookies只在网页中可用。我试图做的简化版本是:asp.net是否可以从静态类中读取cookie的值?

class CurrentUser 
{ 
public static string MyField 
      { 

       get 
       { 
        return Request.Cookies["MyField"]; 
       } 

      } 

} 

这是行不通的。我得到这个错误信息:“名字‘请求’没有在当前情况下存在”

回答

9
using System.Web; 
... 
return HttpContext.Current.Request.Cookies["MyField"]; 
4

看看HttpContext.Current它允许您访问会话,响应,请求,等等

0

可以使用HttpContext.Current.Request.Cookies["MyField"] ..但我会强烈建议反对,因为你不会是能够测试。

如果代码方面是您CurrentUser问题唯一的解决办法,我会推荐直接使用CodeContext而不是HttpContext,尽管需要一些机器。

你能解释一下你为什么不推荐的HttpContext

嗯,我想CurrentUser应该是业务代码。如果你使用HttpContext,你将会依赖于ASP.net的生命周期。如果您必须依赖CurrentUser对部分业务功能进行单元测试,则必须完成http请求的整个路径。

+0

你能解释为什么你不推荐HttpContext.Current.Request.Cookies [“MyField”]? – Anthony 2009-09-03 14:37:06

相关问题