Проверка авторизации с помощью Global.asax

HTTPS является основным требованием для запуска PWA.
Сертификаты уже не так дороги.
Просто учтите это в своих ежегодных расходах на хостинг.
Пока ваш HTTPS не будет запущен с сертификатом, возможно, вы могли бы использовать что-то вроде https://glitch.com/ для бесплатного тестирования

5
задан GEOCHET 19 February 2009 в 14:20
поделиться

2 ответа

Вы могли использовать SqlMembershipProvider (или пользовательский поставщик, если Вы не используете MSSQL), и отклоните неаутентифицируемых пользователей из целого приложения кроме от страницы входа в систему. Эта проверка будет ограничена временем входа в систему, поскольку билет аутентификации будет сохранен или на сессии или как cookie на машине пользователя.

Больше деталей, в Как К: Используйте Членство в ASP.NET 2.0 и Исследование ASP.NET 2.0's Членство, Роли и Профиль

1
ответ дан 14 December 2019 в 13:48
поделиться

Вы звучите, как будто Вы "прокручиваете свою собственную" систему аутентификации.

Я изучил бы использование ASP.NET, созданного в системе аутентификации Форм, которая является наиболее часто используемой с Поставщиком Членства ASP.NET. Встроенные поставщики уже существуют для SQL Server, и можно создать собственного Поставщика Членства путем наследования Системе. Сеть. Безопасность. Базовый класс MembershipProvider.

По существу поставщики членства ASP.NET обычно работают путем установки клиентского cookie (также известный как Билет Аутентификации) в браузере клиента, когда-то клиент успешно аутентифицировал себя. Этот cookie возвращается к веб-серверу с каждым последующим запросом страницы, позволяя ASP.NET и таким образом Ваш код, для определения, как кто пользователь, обычно с одной строкой кода так:

string username = HttpContext.Current.User.Identity.Name;
// The above gets the current user's name.

if(HttpContext.Current.User.Identity.IsAuthenticated)
// Do something when we know the user is authenticated.

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

Используя встроенные формы аутентификация также позволит Вам "защищать" области своего веб-сайта от неавторизованных пользователей с простым декларативным кодом, который входит в Ваш web.config, например:

<authorization>
  <deny users="?"/>
</authorization>

Добавление вышеупомянутого к Вашему "основному" web.config гарантировало бы, что ни одна из Ваших страниц не доступна для неавторизованных пользователей (хотя Вы, вероятно, никогда не делали бы этого в действительности - это просто предназначено как пример). Используя Ролевого Поставщика ASP.NET в сочетании с Членством Поставщик даст Вам еще большую гранулярность по тому, кто может или не может получить доступ к различным разделам Вашего веб-сайта.

5
ответ дан 14 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: