ASP.NET Проверка подлинности форм MVC.Выход из системы не работает

StackOverflow https://stackoverflow.com/questions/1402760

  •  05-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать forms.signout, но иногда это не выводит пользователя из системы, и он все еще может перемещаться через веб-сайт.

Как я могу решить эту проблему?Я также настроил аутентификацию web.config forms, но она по-прежнему не работает.

Я использую FormsAuthentication для аутентификации пользователя, передающего свой логин.

Спасибо!!

Это было полезно?

Решение

Я не знаю, в чем причина, но есть несколько вещей, которые вы могли бы рассмотреть / попробовать

  • действительно ли они все еще могут посещать страницы, сгенерированные сервером, или они просто возвращаются к локально кэшированным версиям?Что происходит, когда они вызывают обратную отправку, в которой есть код для проверки того, аутентифицированы ли они, работает это или сбой?Я думаю, что более позднее значение означает, что они вышли из системы, но просматривают кэшированные версии страницы входа в систему, и в этом случае вы хотите дать указание клиенту не кэшировать страницы, использующие for instances:

    Ответ.Кэш.SetExpires(дата-время.UtcNow.Добавить минуты(-1));Ответ.Кэш.Установить возможность кэширования (HttpCacheability.NoCache);Ответ.Кэш.SetNoStore() Установить хранилище();

  • Вы можете попробовать вручную установить срок действия файла cookie истекшим, но это взлом

    Проверка подлинности форм.Выход из системы();Контекст.Ответ.Файлы cookie.Элемент (проверка подлинности формы.FormsCookieName).Срок действия = Дата.Сейчас;Ответ.Перенаправление("~/Somewhere.aspx");

Другие советы

Есть ли у пользователя домен (или родительский домен) на своих доверенных сайтах или сайтах интрасети?Недавно я столкнулся с некоторыми проблемами, когда пользователь проходит проверку подлинности, но анонимен при обстоятельствах, когда это верно.В моем случае также могло случиться так, что родительский сайт когда-то был настроен на разрешение встроенной проверки подлинности Windows.С тех пор я удалил это, но, похоже, это не помогло решить проблему.Я еще не перезапускал IIS, чтобы посмотреть, возымеет ли это эффект.Я прибегнул к проверке того, что пользователь аутентифицирован и не является анонимным, чтобы убедиться, что отображаются правильные части представления.Это на самом деле более точно, даже несмотря на то, что мой код входа в систему должен предотвращать анонимный вход в систему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top