Я пытаюсь записать 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");
}
Я прочитал много постов, но ни одно из решений не подходит для моего случая, стоитупомяните, что я пытался:
- удалить доменную часть куки.
добавить следующие настройки в web.config
<httpCookies httpOnlyCookies="true" requireSSL="false" />
- Запускать мои сайты через https
РЕДАКТИРОВАТЬ
Я проследил запросы моего приложения с помощью fiddler, и я заметил, что этот запрос устанавливает заголовок ответа с параметром set-cookie, однако, когда онперенаправляет на панель управления, cookie исчезает из браузера.
Я надеюсь, что вы, ребята, можете дать мне некоторую подсказку, чтобы решить эту проблему.
решено
Во время отладки этого метода выяснилось, что token.access_token имеет значение null, поэтому значениеcookie был установлен в null, поэтому, когда браузер перенаправлял на панель мониторинга, он удалял cookie, потому что его значение было нулевым, я проверил процесс, который генерирует токены, и у него возникла проблема, я исправил его, и все снова заработало.спасибо