1 Востаннє редагувалося Betterthanyou (23.04.2020 22:49:14)

Тема: [Вирішено]ASP.Net Як правильно організувати сеанс між сервером та...

В Web.config налаштував сесію

<sessionState cookieName="auth" mode="InProc" timeout="480"></sessionState>

У веб методі ввімкнув сесію

[WebMethod(EnableSession = true)]

Ось так створив del сесію і записав туди ІД

Session["del"] = del;

Кожного разу коли я звертаюся до веб методу в мене значення сесії del нуль, а ІД сесії нове

Я прочитав що ASPNet сервер відправляє куки для клієнта, щоб сервер міг знайти сесію по ІД з куків клієнта. Ну ось проблема, сервер не відправляє мені ніяких куків

Ось HttpWebResponse об'єкт
https://replace.org.ua/misc.php?action=pun_attachment&amp;item=2044&amp;download=0

Роблю запит і отримую відповідь

namespace TCWA.Core.Network
{
    public class ServiceResult
    {
        [XmlElement]
        public string serviceResult;
    }

    class ServiceInvoker
    {
        private static readonly string _contentType = "text/xml;charset=\"utf-8\"";
        private static readonly string _accept = "text/xml";
        private static readonly string _method = "POST";

        public static string InvokeService(
            string _SOAPRequest,
            string requestURLString,
            string methodName)
        {
            //Calling CreateSOAPWebRequest method  
            HttpWebRequest request = CreateSOAPWebRequest(
                requestURLString,
                methodName
                );
            XmlDocument SOAPReqBody = new XmlDocument();
            //SOAP Body Request  
            SOAPReqBody.LoadXml(_SOAPRequest);

            using (Stream stream = request.GetRequestStream())
            {
                SOAPReqBody.Save(stream);
            }
            //Geting response from request  
            using (WebResponse Serviceres = request.GetResponse())
            {
                using (StreamReader rd = new StreamReader(Serviceres.GetResponseStream()))
                {
                    XmlSerializer serializer =
                        new XmlSerializer(typeof(ServiceResult));
                    
                    //reading stream  
                    var ServiceResult = rd.ReadToEnd();
                    
                    //load xml
                    XmlDocument doc = new XmlDocument();
                    doc.LoadXml(ServiceResult);

                    //writting stream result  
                    return doc.GetElementsByTagName("soap:Body")[0].
                        ChildNodes[0].
                        ChildNodes[0].
                        InnerText;
                }
            }
        }

        public static HttpWebRequest CreateSOAPWebRequest(string requestURLString,
            string methodName)
        {
            //Making Web Request  
            HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(requestURLString);
            //SOAPAction  
            Req.Headers.Add(@"SOAPAction:http://tempuri.org/" + methodName);
            //Content_type  
            Req.ContentType = _contentType;
            Req.Accept = _accept;
            //HTTP method  
            Req.Method = _method;
            //return HttpWebRequest  
            return Req;
        }
    }
}

Що я роблю не так ? Як правильно організувати сеанс між сервером та клієнтом ?

Post's attachments

F10.jpg 192 kb, 11 downloads since 2020-04-23 

2

Re: [Вирішено]ASP.Net Як правильно організувати сеанс між сервером та...

Розібрався, потрібно було добавити

Req.CookieContainer = cookieContainer;