asp.net是否可以从静态类中读取cookie的值?

时间:2009-09-03 14:32:46

标签: asp.net cookies

我有一个带有静态属性的CurrentUser类,其值在上次用户访问网站时存储在cookie中。我希望能够从这个类中读取cookie的值。可能吗?看起来Request.Cookies仅在网页中可用。我正在尝试做的简化版本是:

class CurrentUser
{
public static string MyField
            {

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

            }

}

这不起作用。我收到此错误消息:“当前上下文中不存在名称'Request'。

3 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:4)

看看HttpContext.Current。它使您可以访问会话,响应,请求等...

答案 2 :(得分:0)

可以使用HttpContext.Current.Request.Cookies["MyField"] ..但我强烈建议不要这样做,因为你无法测试它。

如果代码上下文是您的CurrentUser问题的唯一解决方案,我建议直接使用CodeContext而不是HttpContext,尽管需要一些机制。

  

你能解释为什么你不推荐HttpContext

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