Мне показалось, что это интересная проблема, поэтому я решил заняться копанием, тестированием и небольшой отладкой исходного кода .net Framework.
По сути, то, что вы пытаетесь сделать, не сработает. Все, что вы положите в коллекцию Response.Cookies, будет просто проигнорировано, если браузер не поддерживает куки. Вы можете проверить Request.Browser.Cookies, чтобы увидеть, если куки поддерживаются.
В asp.net и состояние сеанса, и аутентификация поддерживают режим без файлов cookie, но это не распространяется на другие файлы cookie. На самом деле, кажется, что сеанс и аутентификация могут быть настроены на разные режимы работы.
Система аутентификации может хранить свои собственные данные в URI, но это происходит путем непосредственного манипулирования самим URI. К сожалению, Microsoft, похоже, не раскрывает эти возможности для кода вне модуля аутентификации.
В основном, если вы используете такие методы, как FormsAuthentication.GetAuthCookie () и FormsAuthentication.SetAuthCookie (), тогда система аутентификации позаботится о том, чтобы автоматически поместить эту информацию в URI для вас ... но она не позволяет вам предоставить настраиваемый билет аутентификации для этих методов ... так что вы застряли с билетом аутентификации по умолчанию. В этих случаях вы можете самостоятельно хранить любые пользовательские данные.
В любом случае ...
На самом деле нет особого преимущества в сохранении пользовательских данных непосредственно в билете аутентификации, если система аутентификации перестала быть cookie-файлом ... в режиме без cookie-файлов такие вещи, как «постоянный cookie», не имеют смысла, поэтому вы будете регенерировать данные. в любом случае, по крайней мере, один раз за сеанс.
Самым распространенным предложением для случаев, когда у вас нет файлов cookie, но вам все еще нужны пользовательские данные, как это, является включение сеансов без файлов cookie и просто сохранение пользовательских данных в качестве переменной сеанса. Идентификатор сеанса будет помещен в URI, но пользовательские данные останутся в памяти на сервере. Шаблон использования идентичен независимо от того, есть ли у вас сеансы без файлов cookie или нет.
Если вы действительно хотите, вы можете придумать систему хранения пользовательских данных в URI вручную. Проще всего было бы поместить пользовательские данные в строки запроса или использовать pathdata. Я не вижу никакого реального преимущества в этом по сравнению с переменными сессий, если только вы не устали не использовать серверную память (добавление небольшого количества памяти на сервер - это дешево, уродливые URL-адреса и ручное написание кода для работы с ними - не дешево).