Створення вхідної Web-форми

Для аутентифікації користувачів за допомогою форм необхідна насамперед вхідна Web-форма, що дозволить зареєстрованим користувачам увійти на сайт (а новим користувачам — зареєструватися). Ім'я цієї форми визначається елементом <forms> файла Web-config.

В якості вхідної форми годиться проста Web-форма, що містить лише пари текстових полів і кнопку. Інший варіант - включити вхідну форму в сторінку з незахищеним умістом. Наприклад, можна помістити поля для уведення облікових даних на початкову сторінку додатка (рис.).

protected void butSignOn_Click(object sender, EventArgs e)

{

// Звірити уведені ім'я і пароль користувача

// с такими з елемента <credentials>

if (FormsAuthentication.Authenticate

(txtUserName.Text, txtPassword.Text))

{

// Якщо вони знайдені в списку,

// відобразити початкову сторінку додатка

FormsAuthentication.RedirectFromLoginPage (txtUserName.Text,true);

} else {

// у противному випадку очистити поле для уведення

// пароля,

txtPassword.Text = "";

// Після третьої невдалої спроби

// відобразити сторінку "Access Denied",

if (System.Convert.ToInt32(ViewState["Tries"]) > 3)

Response.Redirect("Denied.htm");

else

// у противному випадку збільшити число

// використаних спроб,

ViewState[ "Tries"] = System.Convert.ToInt32(ViewState["Tries"]) + 1;

}

}

Варто звернути увагу на рад моментів:

· клас FormsAuthentication визначений у просторі імен System.Web.Security, тому необхідно імпортувати цей простір імен за допомогою оператора using або посилатися на цей клас за допомогою повного імені;

· метод Authenticate класу FormsAuthentication звіряє ім'я і пароль користувача зі списком, заданим елементом <credentials> файлу Web.config;

· метод RedirectFromLoginPage класу FormsAuthentication відображає початкову сторінку додатка. Якщо поля для уведення облікових даних розміщені на початковій сторінці додатка, після входу користувача необхідно відключити їх або вказати, що вхід виконаний успішно;

· якщо користувач увів невірне ім'я або пароль, цей код дає йому ще дві спроби, після чого відображає сторінку Access Denied. Це HTML-сторінка, а не Web-форма, оскільки без аутентификации цоступ до будь-яких Web-форм додатка заборонений. Якщо ви направляєте користувачів на цругую сторінку, переконайтеся, що вона перебуває поза областю видимості додатка.

Клас FormsAuthentcation дозволяє користувачеві вийти з додатка, коли він завершив роботу, а також видалити файл cookie з паспортом аутентифікації з його комп'ютера. На наведеному прикладі код завершує користувальницький доступ до додатка і при спробі знову одержати його просить увести ім'я і пароль.

using System.Web.Security;

private void butSignOut_Click (object sender,

System.EventArgs e)

{

// Видалити файл cookie з паспортом аутентифікації

FormsAuthentication.SignOut();

// Повернути користувача на цю (вхідну) сторінку,

Response.Redirect ("UserInfo.aspx");

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: