zoukankan      html  css  js  c++  java
  • WinForm客户端调用 WebService时 如何启用Session

    首先制作一个webservice服务并发布它

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;

    namespace MyService1
    {
        /// <summary>
        /// Service1 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
        // [System.Web.Script.Services.ScriptService]
        public class Service1 : System.Web.Services.WebService
        {

            [WebMethod]
            public string HelloWorld()
            {
                return "Hello World";
            }
            [WebMethod(EnableSession = true)]
            public string Test()
            {
                string name = Context.Session["username"].ToString();
                return name;
           
            }
            [WebMethod(EnableSession = true)]
            public void SetName(string strName)
            {
                Session["EmpName"] = strName;
            }

            [WebMethod(EnableSession = true)]
            public string GetName()
            {
                if (Session["EmpName"] == null)
                {
                    return "";
                }
                else
                {
                    return (string)Session["EmpName"];
                }
            }
        }
    }

    然后构建一个winform程序

     public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {

                System.Net.CookieContainer cc = new System.Net.CookieContainer();
                localhost.Service1 s1 = new localhost.Service1();
                s1.CookieContainer = cc;
                s1.SetName(textBox1.Text);
                label1.Text = s1.GetName();
              
            }

    CookieContainer获取或设置与此请求关联的 cookie。

    针对于webform的调用也是如此

     System.Net.CookieContainer cc=new System.Net.CookieContainer();
            Service.Service1 service = new Service.Service1();
            service.CookieContainer = cc;
            service.SetName("lijinchang");
            Response.Write(service.GetName());

  • 相关阅读:
    命令行程序测试自动化
    微软的PivotViewer控件编程续
    使用Autofac实现依赖注射及Ioc
    微软的PivotViewer控件编程
    求最大公约数(GCD)的两种算法
    编译原理学习笔记一(待续)
    如果你想创业,又担心腾讯照抄你的好点子的话,可以看看下面的文章。
    从测试的角度来重新反思我们自己的程序以及我们的程序员之路——“通过追本溯源来进行前瞻性思考”
    Ubuntu11.10安装飞信
    2012.3.27《JAVA程序设计教程》
  • 原文地址:https://www.cnblogs.com/lijinchang/p/2335550.html
Copyright © 2011-2022 走看看