Файл cookie сеанса не перезаписывается - PullRequest
0 голосов
/ 13 октября 2018

У меня есть проект asp.net MVC, который, когда кто-то заходит на домашнюю страницу, представляет несколько кнопок в зависимости от того, в каких отделах он работает.Затем они могут выбрать отдел, в который они хотят войти.

Следующий контроллер затем устанавливает cookie-файл сеанса с соответствующим contractId.

Однако, если они снова регистрируются в другом отделе, cookie-файл нене перезаписываются новым contractId

        public ActionResult SetContractId(int contractId)
    {

        Session["LoggedContractId"] = contractId;

        return RedirectToAction("IndexLoggedIn");
    }

. Я вызываю вышеуказанное с помощью кнопок, отображаемых в представлении, используя следующее:

@foreach (var item in Model)
{
<div class="col-lg-offset-4 col-md-8" style="margin-bottom: 25px">
    @Html.ActionLink("Login under this Contract", "SetContractId", new { contractId = item.ContractId }, new { @Class = "btn btn-primary" }) <b>@Html.DisplayFor(modelItem => item.DepartmentName)</b>
</div>

}

Я использую это значение cookie для установкидо системы для них.Я использую переменную сеанса следующим образом:

 public ActionResult StartDebrief()
    {
        if (Session["LoggedContractId"] == null)
        {
            return RedirectToAction("IndexLogin", "Home", null);
        }
        else
        {
            var user = User.Identity.Name;
            string userName = user.Substring(7);
            var creator = Peopledb.People.FirstOrDefault(x => x.Username == userName);
            var creatorContractId = (int)Session["LoggedContractId"];

            //Use creatorContractId in the viewmodel and other areas

            return View(viewModel);
        }
    }

Есть идеи?

1 Ответ

0 голосов
/ 13 октября 2018

На мой взгляд, ваш код для обновления информации о сеансе выглядит хорошо.Это означает, что данные сеанса должны быть обновлены правильно.Тем не менее, возможно, что вызов этой функции не правильно.Попробуйте отладить функцию SetContractId ().Где вы вызываете эту функцию после нового входа в систему?

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