» Главная
eXcode.ru » Статьи » ASP / ASP.NET
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 10





Forms-аутентификация




При использовании Forms-аутентификации запрос параметров регистрации (например, логина и пароля) происходит в web-форме. Регистрационная страница указывается в файле Web.config. При первом обращении к защищаемым страницам ASP.NET перенаправляет пользователя на страницу для ввода пароля. При успешной регистрации аутентификационные данные сохраняются в виде cookie и при повторном обращении к защищенным страницам регистрация не требуется.
      Для того, чтобы использовать Forms-аутентификацию в файле Web.config в корневой папке приложения нужно указать страницу для ввода пароля:

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

      При попытке просмотра защищенной страницы ASP.NET проверяет, есть ли аутентификационных cookie в запросе. Если cookie нет, то запрос перенаправляется на страницу для регистрации, если есть - ASP.NET дешифрует cookie и извлекает из него регистрационную информацию.

      На форме находятся поля для ввода логина и пароля и флажок для сохраняемой регистрации. При нажатии кнопки "Войти" происходит поиск пользователя с таким логином и паролем. Если такой пользователь найден, вызывается функция FormsAuthentication.RedirectFromLoginPage (), в которой указывается идентификатор пользователя и флаг для сохраняемой регистрации. Если же нет - выводится сообщение об ошибке.

protected void btnLogin_Click(object sender, System.EventArgs e)
{
   if (!IsValid) // проверяем правильность введенных данных
      return;

   OleDbConnection connection = GetDbConnection();

   try
   {
      connection.Open();

      OleDbCommand command = new OleDbCommand(string.Format("SELECT id FROM Customers WHERE login='{0}' AND password='{1}'", login, password), connection);

      OleDbDataReader reader = command.ExecuteReader();
      if (!reader.Read()) // пароль или логин неверны
      {
         lblError.Text = "Неверный пароль - попробуйте еще раз";
         return ;
      }

      string id = return reader.GetInt32(0).ToString();

      FormsAuthentication.RedirectFromLoginPage(id, chkbRememberLogin.Checked);
   }
   catch (OleDbException ex)
   {
      lblError.Text = "Ошибка базы данных";
   }
   finally
   { 
      connection.Close();
   }
}

Источник: www.cyberguru.ru

К началу статьи





Добавил: LedWormДата публикации: 2008-02-14 09:01:03
Рейтинг статьи:-1.00 [Голосов 1]Кол-во просмотров: 6894

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Вы жалеете, что Билли уходит на пенсию?
Гореть ему в АДУ!!!
41% (53)
Побыстрее бы ушел!
5% (6)
Уйдет он, придет другой!
28% (36)
А мне все равно, я Mac юзаю!
2% (3)
Жаль, дядю Билла :(
12% (15)
Может он передумает?!
13% (17)

Проголосовало: 130
- Сколько на свете дураков есть - ума не приложу!
- Что случилось?
- Да сказал я вчера одному "сходи на сайт".
- И?
- Так после него компьютер сушить пришлось!
Рейтинг: 2.3/10 (3)
Посмотреть все анекдоты