Можно ли использовать 2 разные схемы авторизации внутри одного и того же класса контроллера MVC? - PullRequest
0 голосов
/ 05 марта 2019

В настоящее время я работаю с устаревшим приложением .NET Framework, в котором есть веб-клиент (MVC) и мобильный клиент.Я успешно сконфигурировал свой проект для использования токенов однонаправленного канала для моих контроллеров webapi и файлов cookie сеанса для моего контроллера mvc с использованием следующего в моем WebApiConfig.cs:

////Tells APIs to ignore the Default Cookie Type Authentication
config.SuppressDefaultHostAuthentication();
config.Filters.Add(newHostAuthenticationFilter(OAuthDefaults.AuthenticationType);

Однако в моих контроллерах MVC у меня есть несколько методов, которыевернуть IActionResult () и некоторые, которые возвращают JSonResult.Можно ли определить атрибут / authshcema для метода контроллера на основе, который позволил бы моим методам контроллера JsonResult использовать токены носителя вместо сеансов cookie, несмотря на то, что они не находятся внутри контроллера webapi ??Это позволило бы мне вызывать эти методы контроллера из моего мобильного клиента и избавило бы меня от необходимости проводить рефакторинг этих методов в отдельные контроллеры.

Пример:

//MVC Controller (Not Web API)
public class HomeController : Controller
{        
  //Should use cookie session
  public ActionResult Index()
  {
      return View();
  }

  //Should use bearer tokens
  [HttpGet]
  public JsonResult GetPrograms()
  {
      var menu = _menuService.GetMenu();
      return new JsonResult
      {
          Data = menu,
          JsonRequestBehavior = JsonRequestBehavior.AllowGet
      };
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...