Лучшая практика для авторизации всех пользователей только на одной странице - PullRequest
1 голос
/ 20 августа 2008

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

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

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

Ответы [ 2 ]

5 голосов
/ 20 августа 2008

Я использую аутентификацию на основе форм и создаю необходимые объекты GenericIdentity и CustomPrincipal, которые позволяют мне использовать функции типа User.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>
0 голосов
/ 20 августа 2008

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

Пример:

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

    ...
End Class

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...