Удалить сеанс из строки URL

#asp.net

#asp.net

Вопрос:

В моем ASP.NET на 4 сайте я получаю множество URL-адресов со встроенной в них строкой сеанса. Из-за этого одна и та же страница индексируется поисковой системой несколько раз, все с разными идентификаторами сеанса. Раньше я также добавлял строку aspautodetectcookie к URL-адресу. Но я смог удалить его позже.

Как я могу удалить этот сеанс из URL-адреса — навсегда.

Если мой URL http://www.somesite.com/ViewProduct.aspx?ID=12 , я хочу, чтобы это отображалось так постоянно.

Вот некоторые настройки в моем web.config

 <authentication mode="Forms">
            <forms cookieless="UseCookies" loginUrl="~/AccessDenied.aspx" name="FORMAUTH" />
        </authentication>

<sessionState mode="InProc" cookieless="false" timeout="15" />

<anonymousIdentification cookieless="AutoDetect" enabled="false" />
  

Ответ №1:

Измените cookieless на «UseCookies», чтобы сеанс сохранялся внутри файла cookie. В противном случае сеанс будет встроен в URL.

Вот дополнительная информация с сайта MSDN

Комментарии:

1. хорошо, как мне проверить, была ли проблема устранена? Я имею в виду, что эти идентификаторы сеанса появляются случайным образом в URL-адресе.

2. другой вопрос — что произойдет, если я установлю для cookieless значение true и если клиент не поддерживает cookies?

3. Вы сможете проверить это, посетив страницу, которая будет использовать сеанс и вызывать ответную публикацию.

4. Что касается того, что произойдет, если они не поддерживаются, я считаю, что это вызывает ошибку. Если вам нужно поддерживать клиентов без включенных файлов cookie, вы можете установить для cookieless значение «Автоматическое определение». Это вернет строку сеанса в URL-адрес для этих клиентов.

5. Я только что читал эту статью beansoftware.com/ASP.NET-Tutorials / … и в нем говорится, что добавление cookieless = «true» идентификатор сеанса «будет» встроен во все URL-адреса страниц. Можете ли вы объяснить, что вы имели в виду и что говорится в этой статье.