• 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>
  • 相关阅读:
    【leetcode】974. Subarray Sums Divisible by K
    【leetcode】976. Largest Perimeter Triangle
    【leetcode】973. K Closest Points to Origin
    listen 70
    科学60秒 (一) :上
    listen 69
    listen 68 Theoretical Physicist Stephen Hawking Dies at 76
    中译英33
    listen 67
    中译英32
  • 原文地址:https://www.cnblogs.com/wucg/p/2425184.html
Copyright © 2020-2023  润新知