Доступ к данным фильтра действий в действии контроллера

[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();
}
Другие вопросы по тегам