Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по ASP.NET с сайта progs.biz

  Все выпуски  

Уроки по ASP.NET с сайта progs.biz


Информационный Канал Subscribe.Ru

Уроки по ASP.NET. Рассылки сайта progs.biz
Рассылка № 4
 
Начало > ASP.NET > Основы > Урок 4

Фленов М. Программирование в Delphi глазами хакера.
Фленов М. Программирование в Delphi глазами хакера.
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 4.

Основы ASP.NET
Урок 4. Принудительная регистрация на страницах

Часто на сайте (или на части страниц сайта) требуется принудительная регистрация. Например, вы хотите предоставить доступ к некоторым страницам сайта только зарегистрированным пользователям. Т. е. если посетитель сайта наберет в строке браузера адрес некоторой страницы, требующей ввода пароля, то он автоматически перенаправляется на страницу для авторизации. Если на этой странице авторизации посетитель введет правильные имя и пароль, то он автоматичски перенаправится на ту страницу, с которой он пришел. Такую возможность мы предоставляем через файл web.config.

Давайте посмотрим, как это можно сделать для сайта целиком. Для этого откройте файл web.config, который можно найти в окне Solution Explorer.

Для того, чтобы ввести принудительную регистрацию пользователей, надо изменить два параметра в этом файле (который представляет из себя по сути просто xml-файл) - а именно authentication и authorization.

Вот так эти части файла выглядят сейчас:

    ...
    <authentication mode="Windows" />
    ...
    <authorization>
        <allow users="*" /> <!-- Allow all users -->

            <!--  <allow     users="[comma separated list of users]"
                             roles="[comma separated list of roles]"/>
                  <deny      users="[comma separated list of users]"
                             roles="[comma separated list of roles]"/>
            -->
    ...</authorization>

А вот как они будут выгдядеть после наших изменений:

    ...
    <authentication mode="Forms">
        <forms loginUrl="login.aspx" />
    </authentication>

    <authorization>
        <deny users="?" />
    </authorization>
    ...

Что мы тут делаем? В разделе authentication мы задаем способ аутентификации - через формы на web-странице. В качестве страницы, на которую будет направляться неавторизованный посетитель, мы указываем login.aspx. Но этого мало - мы должны не только разрешить авторизацию через формы, но и запретить доступ к нашим страницам неавторизированных посетителей. Это мы делаем в разделе authorization через строку <deny users="?" />. Тут знак ? означает всех анонимных посетителей.

Кстати, не забывайте, что xml чуствителен к регистру и что, например, loginUrl и loginurl - это не одно и то же.

Теперь остается добавить файл login.aspx для ввода пароля. Для этого выбираем Project -> Add Web Form, в появившемся диалоге в качестве имени задаем login.aspx и закрываем диалог.

В добавленный файл login.aspx добавьте пару текстовых полей (для которых измените их свойство ID на, например, name и password) и кнопку. В обработчике для кнопки напишите следующий код:

    private void Button1_Click(object sender, System.EventArgs e)
    {
        if (name.Text == "Igor" && password.Text == "Secret")
        {
            FormsAuthentication.RedirectFromLoginPage(name.Text, true);
            }
    }

Мы в этом коде проверяем, что посетитель ввел в качестве имени и пароля, и если они равны в нашем случае "Igor" и "Secret" соответственно, то мы перенаправляем посетителя на первоначальную страницу. Это мы делаем через статический метод RedirectFromLoginPage класса FormsAuthentication. Для последнего, кстати, надо подключить нужное пространство имен:

...
using System.Web.Security;
 ...

Вот, собственно, и все. Можно запускать программу. Наша авторизация будет работать, как и задумывалось.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2005 сайт progs.biz
© 2002-2005 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.asplessons
Отписаться

В избранное