Срок действия всех форм файлов cookie для проверки подлинности - PullRequest
3 голосов
/ 25 сентября 2010

У меня небольшой сайт с 10 участниками.5 из них в настоящее время запрещены.

Я гарантировал, что они не смогут войти через страницу входа.

Однако, поскольку cookie-файл аутентификации является постоянным и его срок действия истекает через несколько месяцев, если они возвращаютсяна сайт они все равно будут авторизованы.

Простое решение - просто истечь все аутентификационные билеты / куки.

Как это сделать?

Ответы [ 4 ]

4 голосов
/ 20 ноября 2011

Если вас устраивает аннулирование файлов cookie для всех пользователей, вы можете просто переименовать файл cookie проверки подлинности форм в файле web.config следующим образом:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" name=".ASPXAUTH2"/>
</authentication>

Это заставит всех пользователейвойти снова - и затем вы можете использовать методы, упомянутые выше, чтобы гарантировать, что ваши забаненные пользователи не могут войти в систему.

NB. По умолчанию имя файла cookie - .ASPXAUTH.Приведенный выше код переименовывает его в .ASPXAUTH2.Единственная проблема, с которой я могу столкнуться при таком подходе, заключается в том, что если у вас есть код, который специально ищет файл cookie .ASPXAUTH.

3 голосов
/ 25 сентября 2010

Cookies предназначены для аутентификации , а не для авторизации.

Из википедии

Процесс авторизации иногда ошибочно считают идентичным аутентификации; многие широко принятые стандартные протоколы безопасности, обязательные правила и даже законы допускают эту ошибку. Однако аутентификация - это процесс проверки заявления субъекта о том, что ему должно быть разрешено действовать от имени данного принципала (человека, компьютера, процесса и т. Д.). Авторизация, с другой стороны, включает проверку того, что аутентифицированный субъект имеет разрешение на выполнение определенных операций или доступ к определенным ресурсам. Поэтому аутентификация должна предшествовать авторизации.

Если вы используете проверку подлинности с помощью форм, ответ Роба - путь. В противном случае вам может понадобиться реализовать это вручную

Конечно, они все еще могут быть идентифицированы как пользователи (забаненные, но только пользователи) Но все же этого не должно быть достаточно, чтобы впустить их.

Как опубликовал azamsharp. Должен быть способ сообщить пользователям о запрещенных пользователях в базе данных и не дать им войти в систему.

Тогда запрещенные пользователи все еще могут проходить аутентификацию (после того, как они отправят правильный пользователь и пароль), но не авторизоваться (после того, как они обнаружены как заблокированные).

2 голосов
/ 25 сентября 2010

Вы можете добавить поле в базу данных с именем IsBanned. Когда пользователь забанен, IsBanned - это правда. Если IsBanned имеет значение true, то вы не разрешаете пользователю доступ к веб-сайту.

0 голосов
/ 25 сентября 2010

, так как вы используете аутентификацию по формам, вы можете использовать настройки авторизации в веб-конфигурации:

<system.web>
    <authorization>
      <deny users="user1,user2,user3"/>
    </authorization>
</system.web>

или, если вы используете поставщика ролей, вы можете сделать

<system.web>
    <authorization>
      <deny roles="banned"/>
    </authorization>
</system.web>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...