Member 9331278 Ответов: 2

Как получить переменную сеанса в webmethod()


Я хочу сохранить подпись пользователя как UserNameSig.png.
код работает но Сессия["UserNameSig"].Метод toString()
Я подозреваю, что у [WebMethod()] ie возникли проблемы с переменной сеанса.
Кто-нибудь знает, как можно решить эту проблему.

Спасибо

Что я уже пробовал:

[WebMethod()]
        public static void UploadPic(string imageData)
        {

            string Pic_Path = HttpContext.Current.Server.MapPath(Session["UserNameSig"].ToString() + ".png");
            using (FileStream fs = new FileStream(Pic_Path, FileMode.Create))
            {
                using (BinaryWriter bw = new BinaryWriter(fs))
                {
                    byte[] data = Convert.FromBase64String(imageData);
                    bw.Write(data);
                    bw.Close();
                }
            }
        }

Gerry Schmitz

Повторите свои "переменные сеанса" и посмотрите (покажите), что у вас есть; затем перейдите оттуда.

2 Ответов

Рейтинг:
17

Richard Deeming

Session является свойством экземпляра. Вы не можете получить к нему доступ из статического метода.

Вместо этого вам нужно будет использовать HttpContext.Current чтобы получить доступ к сеансу:

HttpContext context = HttpContext.Current;
string Pic_Path = context.Server.MapPath(context.Session["UserNameSig"].ToString() + ".png");


Рейтинг:
1

F-ES Sitecore

Я погуглил "webmethod session" и нашел эти и многие другие

ASP.Net Веб-Сервисы – Как использовать состояние сеанса в веб-службе?[^]

Использование ASP.NET состояние сеанса в веб - службе[^]

Пожалуйста, сделайте фундаментальное исследование самостоятельно, например, с помощью google, прежде чем задавать вопрос.