从静态类编写cookie

时间:2009-05-23 15:39:07

标签: c# asp.net

我的解决方案中有一个静态类,它基本上使用了一个helper / ultility类。

在其中我有以下静态方法:

// Set the user
    public static void SetUser(string FirstName, string LastName)
    {
        User NewUser = new User { Name = String.Format("{0}{1}", FirstName, LastName) };
        HttpCookie UserName = new HttpCookie("PressureName") { Value = NewUser.Name, Expires = DateTime.Now.AddMinutes(60) };       

    }

User是一个包含以下内容的简单类:

  String _name = string.Empty;

    public String Name
    {
        get { return _name; }
        set { _name = value; }
    }

一切正常,直到我尝试编写cookie“PressureName”并从NewUser.Name插入其中的值。从单步执行代码看来,cookie永远不会被写入。

我犯了一个明显的错误吗?我仍然非常喜欢c#,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

创建cookie对象不足以将其发送到浏览器。您还必须将它添加到Response对象。

当您使用静态方法时,您无法直接访问页面上下文及其Response属性。使用Current属性从静态方法访问当前页面的Context:

HttpContext.Current.Response.Cookies.Add(UserName);