我目前正在使用具有Web客户端(MVC)和移动客户端的旧版.NET Framework应用程序。我已经成功配置了我的项目,以便在WebApiConfig.cs中使用以下内容对我的webapi控制器使用承载令牌,并对我的mvc控制器使用会话cookie:
////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
};
}
}