Ложный файл cookie "ASP.NET_SessionId" - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь найти решение для следующего сценария:

Я перенес веб-приложение из форм auth в OWIN + OAuth.

Теперь есть имобильное клиентское приложение (андроид). Мобильный клиент проходит проверку подлинности по веб-приложению, если все идет хорошо, сервер ответит данными пользователя, а также ответит двумя файлами cookie, один из которых был файлом cookie сеанса (никогда не использовался, но его наличие проверялось на клиенте). ), а другой был идентификатором пользователя. Мобильный клиент проверяет, что данные пользователя «хорошо выглядят», а также проверяет наличие этих двух файлов cookie, чтобы пройти экран входа в систему.

То, что я сейчас пытаюсь сделать, это сохранить мобильный телефонприложение не зависит от изменений на сервере, предоставляя данные пользователя по мере необходимости после всех необходимых проверок, а затем высмеивая наличие 2 файлов cookie, чтобы я мог избежать внесения каких-либо изменений в мобильные приложения (избегайте необходимости компилироватьи обновите клиенты, которые есть)

Приведенный ниже код реализован в контроллере API, и хотя cookie-файл .ASPXAUTH работает нормально, старый cookie-файл ASP.NET_SessionId кажется неуправляемым.

Приведенный ниже код никогда не будет отвечать клиентом с помощью файла cookie ASP.NET_SessionId, хотя код такой же, как и для другого файла cookie, который будет полностью подчиняться .Add / .Set / .Remove onколлекция.

                    if (HttpContext.Current.Response.Cookies.AllKeys.Contains("ASP.NET_SessionId"))
                        HttpContext.Current.Response.Cookies.Set(new HttpCookie("ASP.NET_SessionId", "1st") { HttpOnly = false });
                    else
                        HttpContext.Current.Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "1st") { HttpOnly = false });


                    if (HttpContext.Current.Response.Cookies.AllKeys.Contains(".ASPXAUTH"))
                        HttpContext.Current.Response.Cookies.Set(new HttpCookie(".ASPXAUTH", "2nd") { HttpOnly = false });
                    else
                        HttpContext.Current.Response.Cookies.Add(new HttpCookie(".ASPXAUTH", "2nd") { HttpOnly = false });

Есть ли какая-либо причина, по которой я не могу вернуть «пользовательский файл cookie» с именем ASP.NET_SessionId? Я удалил всю логику, связанную с аутентификацией форм, так что cookie больше не генерируется по умолчанию, но, похоже, я тоже не могу его подделать.

Заранее спасибо

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