在web客户端类中使用ASP.NET响应和请求对象

在web客户端类中使用ASP.NET响应和请求对象,asp.net,Asp.net,我目前有一个webclient类,它使用会话变量为我的web应用程序维护会话,但我想改为使用cookies来维护会话。我当然不能访问这个类中的ASP.NET响应和请求变量。我必须将这些对象传递给webclient类吗?不确定您想要实现什么,但在ASP.NET应用程序中的任何自定义类中,您都可以通过 HttpContext.Current.Request 及 正如Yuriy指出的,您可以通过HttpContext.Current命名空间直接访问请求/响应对象,但这是一种不好的做法。您的类依赖于请

我目前有一个webclient类,它使用会话变量为我的web应用程序维护会话,但我想改为使用cookies来维护会话。我当然不能访问这个类中的ASP.NET响应和请求变量。我必须将这些对象传递给webclient类吗?

不确定您想要实现什么,但在ASP.NET应用程序中的任何自定义类中,您都可以通过

HttpContext.Current.Request


正如Yuriy指出的,您可以通过HttpContext.Current命名空间直接访问请求/响应对象,但这是一种不好的做法。您的类依赖于请求/响应对象,这些对象应该通过其构造函数传递到类中

e、 g

或者,如果您的类的生存时间长于单个http请求的持续时间,则可以将它们作为方法参数传入

public class SessionExample{


    public SessionExample(){

    }

    public void DoSomething(System.Web.HttpRequest request, System.Web.HttpResponse response){

    }

}

以这种方式构建代码使其更易于测试,并将为您省去路上的麻烦。

会话与浏览器的cookie连接,因此,如果您需要读取会话,或者需要访问连接到浏览器的响应和请求并访问cookie的cookie,您是如何使用这个
WebClient
类的?我不明白为什么您要使用
WebClient
类来存储会话数据,因为
WebClient
设计用于从URL发送和接收数据。您当前如何访问会话?@Karl I thin OP表示他自己的类。Duh,我正在使用HttpContext.Current访问会话,我应该意识到我也可以用它来请求和响应。因此我的问题是“你目前如何访问会话”:)你能详细说明一下为什么这是一种不好的做法吗?
public class SessionExample{


    public SessionExample(System.Web.HttpRequest request, System.Web.HttpResponse response){

    }

}
public class SessionExample{


    public SessionExample(){

    }

    public void DoSomething(System.Web.HttpRequest request, System.Web.HttpResponse response){

    }

}