Изменения сеанса в решении .net Core 2.1 - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть решение .net core 2.1, и в нем есть проект wep API и на данный момент отдельный внешний интерфейс MVC, использующий Razor.В обоих файлах startup.cs проектов я объявляю services.AddHttpContextAccessor();

. Из кода внешнего интерфейса я установил сеанс равным 1 часу, и я могу видеть значение HttpContext.Session.Id.Итак, теперь вызывается метод WebApi, и я передаю объект IhttpContextAccessor, но теперь, когда я смотрю на session.Id в переданном контексте, он не содержит того же значения, которое установлено вызывающим приложением.Почему контекст не совпадает?

В моем WebApi я написал собственный AuthorisationFiter, и он был помещен в один из методов API.Я ссылаюсь на контекст следующим образом:

…..
public class AuthorisationFilter : IAuthorizationFilter
    {
        private readonly IHttpContextAccessor _httpContext;
        public AuthorisationFilter(IHttpContextAccessor httpContext) => _httpContext = httpContext;

        public void OnAuthorization(AuthorizationFilterContext context)
        {…….

1 Ответ

0 голосов
/ 20 ноября 2018

Если у вас есть отдельный проект для сайта MVC, то вы фактически создаете два отдельных сайта, работающих в их собственных пулах приложений и т. Д. Вы не можете совместно использовать состояние сеанса между этими двумя, по умолчанию данные сеанса хранятся в памяти для каждогоприложение.Возможно, вы сможете настроить общее хранилище сеансов для этого, но в лучшем случае это звучит как хак, и вы, вероятно, захотите взглянуть на то, что вы пытаетесь достичь, так как, скорее всего, будет лучший путь. Дальнейшее чтение

Я не совсем уверен, как именно вы «передаете» объект IHttpContextAccessor, но это не очень хорошая идея.

Этидни, когда вы создаете API, вы действительно хотите сделать его без сохранения состояния , использование состояния сеанса является полной противоположностью этому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...