2015-12-30 7 views
0

Я разрабатываю простое приложение Asp.Net MVC 6, но я хочу, чтобы некоторые из моих контроллеров вели себя как контроллеры WebAPI, а не как контроллеры Mvc. В настоящий момент у меня есть метод, который возвращает HttpUnauthorized();, и когда я тестирую его с почтальоном, я получаю ответ со статусом 200 и отображает страницу login как тело ответа. Есть ли способ, которым я мог бы разделять мои контроллеры в Startup.cs и «управлять» ими так, чтобы все вызовы, сделанные с помощью url/api/..., вернули код состояния 401 и не отображали страницу входа. Любая помощь будет оценена.HttpUnathorized должен возвращать код статуса при вызове из API

ответ

0

Формы Аутентификация установлена ​​в веб-приложении, что означает, что при возврате HttpUnauthorizedResult из контроллера MVC запускается и перенаправляется на страницу входа. Это приводит к тому, что клиент предполагает, что ошибок не было. Вы можете решить эту проблему, используя пакет aspnet.suppressformsredirect nuget и добавить флаг suppress в ответ для аутентификации.

Или вы можете установить из контроллера

throw new HttpException((int)HttpStatusCode.Forbidden, ""); 
Смежные вопросы