Рекомендуется авторизовывать всех пользователей только на одной странице

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

  •  09-06-2019
  •  | 
  •  

Вопрос

Каков наилучший способ авторизации всех пользователей на одной странице веб-сайта asp.net.

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

Как сделать эту страницу доступной для всех пользователей?

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

Решение

Я использую проверку подлинности в формах и создаю необходимые объекты GenericIdentity и CustomPrincipal, которые позволяют мне использовать пользователя.Функции типа IsInRole вы обычно получаете только при проверке подлинности Windows.

Таким образом, в моем файле web.config я могу делать такие вещи, как...

<location path="Login.aspx">
   <system.web>
      <authorization>
         <allow users ="*" />
      </authorization>
   </system.web>
</location>

<location path="ManagementFolder">
   <system.web>
      <authorization>
         <allow roles ="Administrator, Manager" />
      </authorization>
   </system.web>
</location>

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

Я создал базовый класс "страница", который обрабатывает подобные вещи.Затем все мои страницы могут быть украшены атрибутом RequiresLogin, если для их просмотра требуется логин.Если атрибут отсутствует, страница доступна для всех.

Пример:

<RequiresLogin()> _ 
<RequiresPermission("process")> _
Partial Class DesignReviewEditProgressPage
    Inherits MyPage 'which inherits System.Web.UI.Page and deal with logins itself

    ...
End Class

Класс MyPage проверяет, какие атрибуты помечены для него, и, если присутствует RequiresLogin, он перенаправляет вас на страницу входа в систему.

Я считаю, что это можно было бы адаптировать к вашей собственной проблеме.

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