#asp.net-mvc-4 #asp.net-web-api
#asp.net-mvc-4 #asp.net-web-api
Вопрос:
У меня такая ситуация:
- У меня есть MVC4 ASP.NET веб-сайт на первом сервере.
- Существует сервер WebAPI, который подключается к серверу Oracle.
- Пользователи приложения хранятся в Oracle db.
С чего мне начать настраивать веб-приложение? Как я уже читал, я предполагаю использовать режим аутентификации «Формы».
<authentication mode="Forms">
<forms loginUrl="~/Home/LogIn" timeout="2880"/>
</authentication>
Я видел, что есть
FormsAuthentication.SetAuthCookie(person.UserName, false);
для входа в систему. Существует
FormsAuthentication.Authenticate(...)
метод, который аутентифицирует пользователя.
Я полагаю, я должен каким-то образом переопределить метод аутентификации (…). В этом методе реализации будет запрашиваться WebAPIServer api, действительны ли пользователь и пароль.
Должен ли я использовать что-то вроде аутентификации CustomUser? Или, может быть, есть какое-то другое решение?
Ответ №1:
У вас есть два варианта —
Вариант 1
Вам не нужно FormsAuthentication.Authenticate(...)
, потому что вы будете проверять пользователя через Web API.
Тем не менее, вам все равно нужно использовать FormsAuthentication.SetAuthCookie
Например,
// Validate user via Web API
// ...
if (User is authenticated) {
FormsAuthentication.SetAuthCookie(person.UserName, false);
}
Вариант 2
Внедрите пользовательский поставщик членства. Реализация этого занимает немного больше времени, чем вариант 1, но модель поставщика делает код намного чище, и его легко поддерживать в будущем.
Комментарии:
1. Спасибо. Я уже реализовал вариант 1 в соответствии с этим примером: vivekcek.wordpress.com/2013/06/29/… Теперь я попытаюсь написать свой собственный пользовательский поставщик членства