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