Cookieless Session In WebService

protected void Button1_Click(object sender, EventArgs e)

{

    localhost.MyDemo MyService;



    // try to get the proxy from Session state

    MyService = Session["MyService"] as localhost.MyDemo;



    if (MyService == null)

    {

        // create the proxy

        MyService = new localhost.MyDemo();

 

        // create a container for the SessionID cookie

        MyService.CookieContainer = new CookieContainer();

 

        // store it in Session for next usage

        Session["MyService"] = MyService;

    }



    // call the Web Service function

    Label1.Text += MyService.HelloWorld() + "<br />";

}

  

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.SessionState;



namespace TestWebServiceTradition.WS

{

    public class OurSessionIDManager : ISessionIDManager

    {

        public OurSessionIDManager() { }



        private SessionIDManager sid = new SessionIDManager();



        public string CreateSessionID(HttpContext context)

        {

            return sid.CreateSessionID(context);

        }

        public string GetSessionID(HttpContext context)

        {

            return sid.GetSessionID(context);

        }

        public void Initialize()

        {

            sid.Initialize();

        }

        public bool InitializeRequest(HttpContext context, bool suppressAutoDetectRedirect, out bool supportSessionIDReissue)

        {

            bool redirectCookie = false;

            if ((context.Request.RawUrl.ToLower().IndexOf(".asmx") > -1))

                redirectCookie = true; 

            return sid.InitializeRequest(context, redirectCookie, out supportSessionIDReissue);

        }

        public void RemoveSessionID(HttpContext context)

        {

            sid.RemoveSessionID(context);

        }

        public void SaveSessionID(HttpContext context, string id, out bool redirected, out bool cookieAdded)

        {

            sid.SaveSessionID(context, id, out redirected, out cookieAdded);

        }

        public bool Validate(string id)

        {

            return sid.Validate(id);

        }

    }

}

  

 

<configuration>
   
<system.web>
   
<webServices>
       
<protocols>
           
<addname="HttpGet"/>
           
<addname="HttpPost"/>
       
</protocols>
   
</webServices>
   
</system.web>
</configuration>

 

你可能感兴趣的:(webservice)