Сессия ASP.NET Core MVC 2.1.0 не работает после публикации в IIS-10 - PullRequest
0 голосов
/ 13 января 2019

Я хочу сохранить некоторые значения в сеансе, так как я могу получить доступ к этим значениям в приложении. На localhost работает нормально. Но когда я попытался получить доступ удаленно / с сервера после публикации, это не сработало. значение сеанса равно нулю.

Я использую .NETCoreApp, Версия = v2.1 с «Microsoft.AspNetCore.Mvc»: «2.1.1».

HomeController.cs:

using System;
using System.Diagnostics;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
public class HomeController : Controller
{
    public IActionResult Index()
        {
            HttpContext.Session.SetObjectAsJson("key", "Test value");           
            return View();
        }
    public IActionResult About()
        {          
            ViewBag.SessionValue = 
                 HttpContext.Session..GetObjectFromJson<String>("key");
            return View();
        }
}

About.cshtml:

@{
    ViewData["Title"] = "About";
}
<body>
  Value:    @ViewBag.SessionValue
</body>

Здесь, во время запуска из Visual Studio 2017, это отображается на странице About Ожидаемый результат:

Value: Test Value

Но после публикации в Windows Server 2016 IIS 10.0 он отображается на странице «О программе». Фактический результат:

Value:

1 Ответ

0 голосов
/ 16 мая 2019

Вы должны написать options.CheckConsentNeeded = context => false; в ConfigureServices.

services.Configure<CookiePolicyOptions>(options =>
{
    options.CheckConsentNeeded = context => true; // consent required
    options.MinimumSameSitePolicy = SameSiteMode.None;
});

Затем добавьте AddSession перед AddMvc. Кроме того, чтобы пометить файл cookie как необходимый, задайте для IsEssential значение true.

    services.AddSession(opts => 
    {
        opts.Cookie.IsEssential = true; // make the session cookie Essential
    });

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...