Подтвердить что ты не робот

Как использовать идентификатор ASP.net 5 в приложении веб-API? Аутентификация пользователя на основе токенов. Мобильные приложения

Предполагая, что в настоящее время у меня есть недавно созданный проект на основе шаблона Visual Studio 2015 "WebApp" с индивидуальной аутентификацией учетных записей, я использую пакет Microsoft.AspNet.Authentication, и я не всегда могу полагаться на файлы cookie, потому что мой веб-API также должен ориентироваться на мобильные приложения:

Как добавить аутентификацию в свой веб-API? Меня особенно интересует аутентификация на токенах.

4b9b3361

Ответ 1

Вы можете использовать базовую HTTP-аутентификацию или реализовать аналогичную с маркером или билетом, переданным через заголовки http.

Ответ 2

Внедрите собственный авторизованный атрибут в свой веб-проект api. В перегрузке IsAuthorized (HttpActionContext actionContext) вы можете проверить схему авторизации и заголовок авторизации, а затем вы можете подключиться к провайдеру сеансов и проверить, имеет ли пользователь активный сеанс. Вы должны передать токен входа в заголовок авторизации, поэтому, если токен отсутствует, это означает, что нет активного пользователя. Поэтому, когда вы входите в систему, вы должны создать и зашифровать токен при успешном входе в систему. Затем передайте этот токен с каждым запросом на сервер.
Этот блог содержит дополнительную информацию об использовании AuthorizeAttribute: http://weblogs.asp.net/jongalloway/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way

Ответ 3

Вы можете сделать отдельную таблицу в db для хранения деталей проверки подлинности (AuthKey, UserID, CreatedDate, ExpiredDate, IsExpired) и создать такие функции, как CheckAuthorizationKey (строка authKey), ExtendAuthorization (строка authKey), ExpireAuthorization (строка authKey) {}

и вызовите эти функции для проверки авторизации в соответствии с примером кода.

public ServiceResult<LoginModel> Login(string auth_key)
 {
            var service = new ServiceResult<LoginModel>();
            LoginModel user = new LoginModel();
            if (AuthKey.CheckAuthorizationKey(auth_key) == false)
            {
                service.message = TemplateCodes.GetMessage(TemplateCodes.UnAuthorize, null, db);
                service.status = ServiceStatus.authorization_failed;
                return service;
            }