Re[3]: авторизация через Forms
От: ApmeM  
Дата: 22.03.10 18:05
Оценка:
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 — основа авторизации ручным методом
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.