Значения сеанса нулевые в моей функции обратного вызова, но читаемые после перенаправления - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть подобное действие

        public IActionResult Callback(IFormCollection form)
        {

            if (!HttpContext.Session.TryGetValue(SessionName, out byte[] info))
                return RedirectToAction(nameof(Index));

            ....
        }

Когда мой провайдер перенаправляет эту функцию, я не могу прочитать значения сеанса. Но если я добавлю еще один шаг с перенаправлением, как это;

        public IActionResult Callback(IFormCollection form)
        {

            return RedirectToAction("CallbackCheck");

        }

        public IActionResult CallbackCheck()
        {

            if (!HttpContext.Session.TryGetValue(SessionName, out byte[] info))
                return RedirectToAction(nameof(Index));


        }

, я смогу прочитать все значения сеанса.

Добавить Startup.cs в эти конфигурации, но ничего не изменится

        public void ConfigureServices(IServiceCollection services)
        {

           ...

           services.Configure<CookiePolicyOptions>(options => options.MinimumSameSitePolicy = SameSiteMode.None);
           services.AddSession( );

           ...
        }

1 Ответ

0 голосов
/ 21 апреля 2020

Добавление параметров в сеанс для решения проблемы

            services.AddSession(options =>
            {
                options.Cookie.SameSite = SameSiteMode.None;
                options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
                options.Cookie.IsEssential = true;
            });
...