如何通过其他站点访问Web服务中的会话/ Cookie集:

时间:2012-12-13 12:07:07

标签: asp.net web-services

我有一个客户端应用程序,它将调用web方法并传递两个值(order和Amount)。 Web方法将在Session / Cookie中设置值。现在客户端应用程序将重定向到其他网站,该网站应该能够通过Session / Cookie获取订单和金额值。由于安全问题,我无法将其用作查询字符串。请帮助我找到合适的解决方案。 Web服务中的代码如下:

    [WebMethod(EnableSession = true,Description="SetValues")]
    public void CallService(string orderNumber, double amount)
    {
        if (orderNumber != null && orderNumber != string.Empty)
        {               
          Context.Session["OrderID"] = orderNumber;
          Context.Session["Amount"] = amount; //Tried Session but did no work            
         //Tried Setting the value in Cookie 
          HttpCookie OrderID = new HttpCookie("OrderID",orderNumber);
          HttpCookie Amount = new HttpCookie("Amount", amount.ToString());
          OrderID.Expires = DateTime.Now.AddHours(3);
          Amount.Expires = DateTime.Now.AddHours(3);
          Context.Response.SetCookie(Amount);
          Context.Response.SetCookie(OrderID);
        }
}

//从Cookie

获取值的代码
        Service.ServiceAPISoapClient e1 = new Service.ServiceAPISoapClient();           
           e1.CallEISService("12e", 121);
 string amount= Request.Cookies["Amount"] != null?  Request.Cookies["Amount"].Value:""; 

2 个答案:

答案 0 :(得分:0)

Cookie始终绑定到单个域。 出于安全原因,您不能在任何其他域中使用您的cookie。

答案 1 :(得分:0)

通常,为了将信息从一个站点发送到另一个站点,所有人都使用表单...

将两个隐藏的控件放入表单中。然后,当提交表单时,您可以从这些控件中读取值...