Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ASP.NET MVC Урок 1-F / ASP.NET MVC Урок 6

.pdf
Скачиваний:
45
Добавлен:
09.03.2016
Размер:
456.99 Кб
Скачать

Вся соль в строках: DXWK +WWS&RQWH[W FRQWH[W ɢ FRQWH[W 8VHU DXWK &XUUHQW8VHU. Как только наш модуль авторизации узнает о контексте и содержащихся в нем кукисах, ту же моментально получает доступ к имени, по нему он в репозитории получает данныепользователя и возвращает в BaseController. Но не сразу всё, а по требованию.

Подключаем модуль в Web.config:

V\VWHP ZHE!

«

KWWS0RGXOHV!

DGG QDPH $XWK+WWS0RGXOH W\SH /HVVRQ3URMHFW *OREDO$XWK$XWK+WWS0RGXOH!

KWWS0RGXOHV!V\VWHP ZHE!

План таков:

Наверху показываем, авторизован пользователь или нет. Если авторизован, то его email и ссылка на выход, если нет, то ссылки на вход и регистрацию

Создаем форму для входа

Если пользователь правильно ввел данные – то авторизуем его и отправляем на главную страницу Если пользователь выходит – то убиваем его авторизацию

Поехали. Добавляем +WPO$FWLRQ ³8VHU/RJLQ´ ³+RPH´ – это partial view (т.е. кусок кода,

который не имеет Layout) – т.е. выводится где прописан, а не в RenderBody(). _Layout.cshtml (/Areas/Default/Views/Shared/_Layout.cshtml):

ERG\!

GLY FODVV QDYEDU QDYEDU IL[HG WRS!

GLY FODVV QDYEDU LQQHU!

GLY FODVV FRQWDLQHU!

XO FODVV QDY QDY SLOOV SXOO ULJKW!

#+WPO$FWLRQ 8VHU/RJLQ +RPH

XO!

GLY!

GLY!

GLY!

#5HQGHU%RG\

+RPH&RQWUROOHU FV SXEOLF$FWLRQ5HVXOW 8VHU/RJLQ

^

UHWXUQ 9LHZ &XUUHQW8VHU

`

UserLogin.cshtml (/Areas/Default/Views/Home/UserLogin.cshtml):

#PRGHO /HVVRQ3URMHFW 0RGHO 8VHU

#LI 0RGHO QXOO

^

OL!#0RGHO (PDLOOL!

OL!#+WPO$FWLRQ/LQN ȼɵɯɨɞ /RJRXW /RJLQOL!

`

HOVH

^

OL!#+WPO$FWLRQ/LQN ȼɯɨɞ ,QGH[ /RJLQOL!

OL!#+WPO$FWLRQ/LQN Ɋɟɝɢɫɬɪɚɰɢɹ 5HJLVWHU 8VHUOL!

`

Контроллер входа выхода LoginController (/Areas/Default/Controllers/LoginController.cs):

SXEOLF FODVV /RJLQ&RQWUROOHU 'HIDXOW&RQWUROOHU

^

>+WWS*HW@

SXEOLF $FWLRQ5HVXOW,QGH[

^

UHWXUQ9LHZQHZ/RJLQ9LHZ

`

>+WWS3RVW@

SXEOLF $FWLRQ5HVXOW,QGH[/RJLQ9LHZ ORJLQ9LHZ

^

LI0RGHO6WDWH ,V9DOLG

^

YDUXVHU $XWK /RJLQ ORJLQ9LHZ (PDLO ORJLQ9LHZ 3DVVZRUG ORJLQ9LHZ ,V3HUVLVWHQW

LIXVHU QXOO

^

UHWXUQ5HGLUHFW7R$FWLRQ,QGH[ +RPH

`

0RGHO6WDWH>3DVVZRUG@ (UURUV$GGɉɚɪɨɥɢ ɧɟ ɫɨɜɩɚɞɚɸɬ

`

UHWXUQ9LHZ ORJLQ9LHZ

`

SXEOLF $FWLRQ5HVXOW/RJRXW

^

$XWK /RJ2XW

UHWXUQ5HGLUHFW7R$FWLRQ,QGH[ +RPH

`

`

LoginView.cs (/Models/ViewModels/LoginView.cs):

SXEOLF FODVV /RJLQ9LHZ

^

>5HTXLUHG (UURU0HVVDJH ȼɜɟɞɢɬɟ HPDLO@

SXEOLF VWULQJ(PDLO ^JHW VHW`

>5HTXLUHG (UURU0HVVDJH ȼɜɟɞɢɬɟ ɩɚɪɨɥɶ@

SXEOLF VWULQJ3DVVZRUG ^JHW VHW`

SXEOLF ERRO,V3HUVLVWHQW ^JHW VHW`

`

Страница для входа Index.cshtml (/Areas/Default/Views/Index.cshtml):

#PRGHO /HVVRQ3URMHFW 0RGHOV 9LHZ0RGHOV /RJLQ9LHZ

#^

9LHZ%DJ 7LWOH ȼɯɨɞ

/D\RXW a$UHDV 'HIDXOW 9LHZV 6KDUHG B/D\RXW FVKWPO

`

K!ȼɯɨɞK!

#XVLQJ +WPO %HJLQ)RUP ,QGH[ /RJLQ )RUP0HWKRG 3RVW QHZ ^ #FODVV IRUP KRUL]RQWDO `

^

ILHOGVHW!

OHJHQG!ȼɯɨɞOHJHQG!

GLY FODVV FRQWURO JURXS!

ODEHO FODVV FRQWURO ODEHO IRU (PDLO!

(PDLOODEHO!

GLY FODVV FRQWUROV!

#+WPO 7H[W%R[ (PDLO 0RGHO (PDLO QHZ ^ #FODVV LQSXW [ODUJH `

S FODVV KHOS EORFN!ȼɜɟɞɢɬɟ (PDLOS!

#+WPO 9DOLGDWLRQ0HVVDJH (PDLO

GLY!

GLY!

GLY FODVV FRQWURO JURXS!

ODEHO FODVV FRQWURO ODEHO IRU 3DVVZRUG!

ɉɚɪɨɥɶODEHO!

GLY FODVV FRQWUROV!

#+WPO 3DVVZRUG 3DVVZRUG 0RGHO 3DVVZRUG QHZ ^ #FODVV LQSXW [ODUJH `

#+WPO 9DOLGDWLRQ0HVVDJH 3DVVZRUG

GLY!

GLY!

GLY FODVV IRUP DFWLRQV!

EXWWRQ W\SH VXEPLW FODVV EWQ EWQ SULPDU\!

ȼɨɣɬɢEXWWRQ!

GLY!

ILHOGVHW!

`

Запускаем и проверяем:

После авторизации:

Все исходники находятся по адресу https://bitbucket.org/chernikov/lessons

Соседние файлы в папке ASP.NET MVC Урок 1-F