Как создать сессию значения объекта в ядре asp.net версии 2.2.0? - PullRequest
0 голосов
/ 04 июля 2019

В Microsoft.AspNetCore.Session версии 2.2.0 как создать сеанс значения объекта.Я пытался прочитать различные статьи, но когда я пытаюсь применить то же самое, это дает мне ошибку, потому что нет перегрузки как 'SetString'.

public static class SessionHelper
    {
        public static void SetObjectAsJson<T>(this ISession session, string key, object value)
        {
            session.SetString(key, JsonConvert.SerializeObject(value));
        }

        public static T GetObjectFromJson<T>(this ISession session, string key)
        {
            var value = session.GetString(key);

            return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
        }
    }

1 Ответ

0 голосов
/ 04 июля 2019

В Asp.Net Core, кроме установки и получения строки сеанса, вы также должны добавить SessionMiddleware в конвейер, сделайте это app.UseSession() перед app.UseMvc() в методе Configure в вашем файле startup.cs.После этого в вашем методе ConfigureServices добавьте следующую службу.

services.AddSession(options =>
  {
      //Replace {mins} with the time you want, usually around 20-30.
      options.IdleTimeout = TimeSpan.FromMinutes({mins});               
  });

, а затем вы можете продолжить работу с классом SessionHelper.Также неверно имя вашего класса, оно должно называться SessionExtensions, а не SessionHelper, возможно, именно поэтому ваше расширение не регистрируется в HttpContext.Session.Надеюсь, это поможет.

...