Вам необходимо использовать элемент <location>
в вашем web.config. Вы можете использовать тег <location>
, чтобы применить настройки авторизации к отдельному файлу или каталогу.
<location path="/root">
<system.web>
<authentication mode="Forms" >
<forms name="LoginForm" defaultUrl="default.aspx"
loginUrl="/root/login.aspx" protection="Encryption"
timeout="30" path="/"/>
</authentication>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<location path="/root/admin">
<system.web>
<authentication mode="Forms" >
<forms name="formName" defaultUrl="login.aspx"
loginUrl="/root/admin/login.aspx" protection="Encryption"
timeout="30" path="/"/>
</authentication>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
MSDN
Для централизованного управления, настройки могут быть применены в Machine.config файле . Параметры в файле файла Machine.config определяют политику в масштабе всего компьютера, а также могут быть , используемые для применения конфигурации приложения с использованием <location>
элементов. Разработчики могут предоставить файлы конфигурации приложения до переопределить аспекты политики машины. Для веб-приложений ASP.NET файлWeb.config находится в виртуальном корневом каталоге приложения и необязательно в подкаталогах под виртуальным корнем.
Если вам нужно 1 место для входа и различные уровни доступа, вы можете использовать roles.
<location path="/root">
<system.web>
<authorization>
<allow roles="admin,root" />/*admin, root is allowed */
<deny users="*" />
</authorization>
<system.web>
</location>
<location path="/root/admin">
<system.web>
<authorization>
<allow roles="admin" />/*admin is allowed */
<deny users="*" />
</authorization>
<system.web>
</location>
Пользователи могут принадлежать к более чем одной роли. Например, если ваш сайт является дискуссионным форумом , некоторые пользователи могут быть в роли как членов, так и Модераторы. Вы можете определить каждую роль , чтобы иметь разные права на сайте , а пользователь, который находится в обеих ролях, имел бы оба набора из привилегий.
Вы можете получить доступ все эти элементы на уровне кода, если вы хотите манипулировать роли/аутентификации программным
Page.User.Identity.Name
Page.User.Identity.IsAuthenticated
Page.User.Identity.AuthenticationType
Page.User.IsInRole("string");
Дополнительные ссылки
Using 2 Membership Providers in asp.net
4 Guys From Rolla Tutorial
The ASP.NET web.config File Demystified
Есть ли у вас 2 разных аргумента URL или строки запроса, чтобы направить пользователя на правильную страницу входа? – cgreeno