N>Подход в целом мне нравится
Но в таком случае придется для КАЖДОЙ страницы отдельно прописывать доступ,
N>роли, что не есть гут. У меня страниц больше сотни. Это не проще чем Кстати, под ролью в данном случае имеется в виду ASPNET-роль(SqlProvider, Администраторы и т.д.)?
N>У меня то задача простая: своих пускать, чужих не пускать)
N>В предложенном варианте не задействуется потенциал <authentication mode="Forms">. Может именно в нем — недостающее звено?
У ииса с его веб.конфигами есть волшебная особенность. если не указывать страницу то его действие распространяется на все вложенные папки.
Таким образом можно настроить иис примерно так:
/
web.config
login.aspx
Приветствие.aspx
MainSite/
web.config
100500файлов.aspx
100500папок/
в корневой папке в основнем веб конфиге будет какраз авторизация по формам:
<authentication mode="Forms">
<forms cookieless="UseCookies" loginUrl="/login.aspx" />
</authentication>
и те самые 2 страницы, на которые разрешен доступ без логина
в папке MainSite будет расположен основной сайт со всеми его страничками и веб конфигом из 9 строк:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
Что не позволит ломится в эту папку кому попало.
N>Еще была мысль проверять в Global.asax заполнение некого параметра Сессии. Но в обработчике begin_request сессия по каким то причинам недоступна,
N>а session_start насколько понимаю сработает как раз на общедоступных страницах, потому пользы не принесет...Может какой-то нюанс упустил из виду,
N>который поможет через него реализовать все таки?
в этом случае с глобал асаксом делать ничего не надо. В 2008 студии есть контрол login, который практически все делает сам, от вас потребуется написать обработчик onLoggedIn (ну или как-то так, он там практически один), в котором возвращать true или false — подходят логин с паролем или нет.
Если возникнет желание делать все самому, то предлагаю покурить в сторону FormsAuthentication класса.
Ну а вообще сайт мелкомягких рулеззз —
http://msdn.microsoft.com/en-us/library/eeyk640h.aspx — основа авторизации ручным методом