因此向 ASP.net MVC 控制器/操作发出请求。这有一个关联的会话。我们实例化 WebClient 对象并调用同一站点上的资源的部分操作。
然而,尽管它是同一个站点,同一个应用程序池,因为 WebClient 创建了一个新请求,它具有不同的会话。(我知道你的想法,如果它在同一个应用程序池、同一个站点上,为什么需要 WebClient)。我已将这些细节遗漏了以免弄脏水,但是 WebClient 是有原因的。
我的理解是,如果可以为 WebClient 分配原始 Request.Cookies 集合中的 cookie,那么 ASP.net 将能够根据现有的 cookie 查找现有的 Session。
所以我想有2个问题:
- 这是正确的吗,如果我要(以某种方式)将 cookie 分配给 WebClient,那么由 WebClient 创建的请求最终会获取原始请求的会话。
- 如何将当前的 Request.Cookies 分配给 WebClient?
更新
我已经查看并尝试了使用带有 WebClient 类的 CookieContainer以及使用 HttpCookieCollection 和 CookieContainer 发送 cookie,但我还没有找到可行的解决方案。
我们有 Umbraco 和 asp.net MVC 的捆绑解决方案,我们正在使用 webclient 向 Umbraco 发出页面请求。在我的研究中,我还发现可能有其他事实可能导致 cookie 无法像我上面描述的那样工作。所以我想首先要找出关于cookies的全部内容是否允许获取原始会话?或者是否有更好的方法来处理我们正在做的事情?