Доступ к данным фильтра действий в действии контроллера
[ApiBasicAuthorize]
public ActionResult SignIn()
{
}
У меня есть этот пользовательский фильтр под названием ApiBasicAuthorize. Можно ли получить доступ к данным ApiBasicAuthorize (свойствам и т. Д.) Внутри действия контроллера SignIn?
Если нет, то как передать данные из фильтра в действие контроллера?
2 ответа
Решение
К объекту HttpContext прикреплен словарь с названием items. Используйте этот словарь для хранения элементов, совместно используемых компонентами во время запроса.
public override void OnAuthorization(AuthorizationContext filterContext)
{
filterContext.HttpContext.Items["key"] = "Save it for later";
base.OnAuthorization(filterContext);
}
Тогда где-нибудь в вашем коде позже в запросе...
var value = HttpContext.Current.Items["key"];
public override void OnAuthorization(AuthorizationContext filterContext)
{
var rd = filterContext.RouteData;
//add data to route
rd.Values["key"]="Hello";
base.OnAuthorization(filterContext);
}
public ActionResult(string key)
{
//key= Hello
return View();
}