Да - по умолчанию ASP.NET использует файлы cookie для поддержания сеанса.
То есть уникальный файл cookie "Идентификатор сеанса" хранится на клиенте для отслеживания сеансов на сервере (служба состояний, sql db и т. Д.).
Но в файле web.config вы можете установить для параметра cookieless значение true:
<sessionState mode="InProc" cookieless="true" timeout="20" />
Это приведет к тому, что тот же самый «идентификатор сеанса» застрянет в URL, и файлы cookie не будут использоваться.
Не смущайтесь - куки не хранят фактическую "сессию" . Похоже, вы думаете, что куки могут быть использованы в качестве альтернативы чему-то вроде службы состояний ASP.NET.
Когда на самом деле cookie просто хранит идентификатор для «отслеживания» сеанса, другими словами - этот «идентификатор» передается между клиентом-сервером при каждом HTTP-запросе, таким образом, сервер может синхронизировать определенный элемент сеанса с клиентом, которому он принадлежит.
Сеанс на основе файлов cookie / без файлов cookie не зависит от того, какой механизм хранения состояний у вас есть - будь то сеанс В процессе, служба состояний ASP.NET или SQL Server. Он просто определяет, как серверу разрешено отслеживать сеансы.
Конечно, сеансы без файлов cookie подойдут клиентам, которые могут отключить файлы cookie, но недостатком этого является то, что у вас есть ужасные URL-адреса, но это может быть сведено на нет довольно просто с использованием перезаписи URL, хотя я бы порекомендовал против этого - многие сообщали о проблемах при попытке сделать это.
НТН