Лучшая практика авторизации всех пользователей только на одной странице


1

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

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

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

5

Я использую проверку подлинности форм и создание необходимых объектов 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> 

-1

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

Пример:

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

    ... 
End Class 

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

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

+2

Люди, у которых downvote должны быть обязаны написать причину !! 25 сен. 092009-09-25 23:37:07