Я пытаюсь найти решение для следующего сценария:
Я перенес веб-приложение из форм 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 больше не генерируется по умолчанию, но, похоже, я тоже не могу его подделать.
Заранее спасибо