代码之家  ›  专栏  ›  技术社区  ›  anon

哪些语言可以使用System.net.CookieContainer类?

  •  0
  • anon  · 技术社区  · 14 年前

    我正在开发一个需要从不同客户机联系的Web服务。
    因为我不知道客户机将使用什么语言,所以我想知道每种语言是否都可以检索并传递一个类型为“system.net.cookiecontainer”的类。

    我有一个WebService,它对客户机进行身份验证,并返回一个CookieContainer(这可以在以下请求中传递)。这样我就可以保持会话活动。

    客户端1将使用.NET(这显然有效)。
    客户机2将使用PHP(这是否有效?). 客户端3将使用Java(这会起作用吗?).

    我之所以要使用它是因为用户可以使用我们的WebService进行身份验证,并且在以下请求中,他不需要再次进行身份验证。

    经过一番搜索,我找到了CookieContainer解决方案。

    有什么想法吗?

    干杯, M

    3 回复  |  直到 12 年前
        1
  •  1
  •   Justin    14 年前

    听起来您只是希望人们能够在使用您的Web服务之前进行身份验证。为此,你不需要通过 CookieContainer 类的来回传递,您可以只使用表单身份验证让人们登录。

    一旦有人通过登录功能传递了正确的凭证,您就可以调用 FormsAuthentication.SetAuthCookie 设置会话信息。然后在每次呼叫时,您都可以检查以确保他们通过了身份验证 User.Identity.IsAuthenticated

    现在,如果您的客户机不是Web浏览器,而且还没有自动神奇地处理cookie,那么您需要创建一种存储和管理cookie的方法。如果您的客户机是用.NET编写的,那么您可以使用 烹调器 类来包含和管理从Web服务发回的身份验证cookie。

        2
  •  1
  •   Coding Flow    14 年前

    如果从Web服务返回一个类,那么它将被序列化为XML。因为它是.NET类,所以.NET语言可以将其反序列化回实际的类。其他语言只能访问序列化类以获取数据,或者可能将其取消到与类的xsd complexType匹配的自定义类(如果该语言支持该功能)。但是,这只会引入类中的任何数据,属于类一部分的任何方法实际上都没有序列化,似乎它们只是在.NET中,因为当反序列化类时,.NET将实例化相关类并用序列化类中的数据填充属性。

        3
  •  0
  •   Timwi    14 年前

    不清楚您所说的__是什么意思,返回一个CookieContainer__。顾名思义,WebService是一个服务 网上 在网上,我们有 WebEcQuestes (HTTP请求)并返回 HTTP响应 . HTTP响应可能包括,也可能不包括客户端将为以后的请求记住的cookie。到目前为止,这并不依赖于任何编程语言。

    您没有指定您的WebService是用什么编写的,但是由于您引用的是.NET类型,所以可能是某种.NET语言,可能是C/ASP.NET。我不确定您将如何返回CookieContainer;通常,您将使用 SetCookie(...) 你的方法 HttpResponse 对象。如果你这样做,PHP和Java将把cookie看作普通的HTTP Cookie,并且不必关心它们来自.NET。例如,在PHP客户机中,您可能会使用 HttpRequest::send 调用Web请求,然后可以使用 HttpRequest::getResponseCookies 检索cookie。