Asp .net не пишет куки в браузере - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь записать cookie в браузер, используя HttpCookie, мой подход следующий.

        private async Task WriteCookie (string userName) {

            var user = await UserManager.FindByNameAsync(userName);
            ClaimsIdentity cookiesIdentity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);

            AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = false }, cookiesIdentity);

            TokenResult token = await AuthenticationHelper.GetBearerTokenAsync(Request, user.UserName, user.Password);
            HttpCookie cookie = new HttpCookie(".myCookie");
            cookie.Value = token.access_token;
            cookie.Domain = ".myDomain"
            cookie.Expires = DateTime.Now.AddDays(1);
            Response.Cookies.Add(cookie);

            RedirectToAction("Dashboard", "App");

        }

Я прочитал много постов, но ни одно из решений не подходит для моего случая, стоитупомяните, что я пытался:

  1. удалить доменную часть куки.
  2. добавить следующие настройки в web.config

    <httpCookies httpOnlyCookies="true" requireSSL="false" /> 
    
  3. Запускать мои сайты через https

РЕДАКТИРОВАТЬ

Я проследил запросы моего приложения с помощью fiddler, и я заметил, что этот запрос устанавливает заголовок ответа с параметром set-cookie, однако, когда онперенаправляет на панель управления, cookie исчезает из браузера.

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

решено

Во время отладки этого метода выяснилось, что token.access_token имеет значение null, поэтому значениеcookie был установлен в null, поэтому, когда браузер перенаправлял на панель мониторинга, он удалял cookie, потому что его значение было нулевым, я проверил процесс, который генерирует токены, и у него возникла проблема, я исправил его, и все снова заработало.спасибо

...