Как достать информацию с выполненного атрибута метода?
Атрибут:
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
public class SessionCheckAttribute : Attribute, IAuthorizationFilter
{
public SessionPerson? SessionPerson;
public void OnAuthorization(AuthorizationFilterContext authorizationFilterContext)
=> SessionPerson = ...; // <= какие то вычисления
}
Класс:
public class HomeController : Controller
{
[SessionCheck]
public IActionResult Index()
{
var = ... // <= тут необходимо получить значение SessionPerson
return View();
}
}
Как бы не пытался, но получаемое значение всегда null у SessionPerson, хотя OnAuthorization выполнялся при проверки атрибута.
public class HomeController : Controller
{
[SessionCheck]
public IActionResult Index()
{
var = ... // <= к атрибуту доступ получаю, но SessionPerson = null
return View();
}
}
Два раза выполнять метод OnAuthorization не хочется.
Кодом ниже атрибут получаю, но значение SessionPerson в нем равно null, хотя через дебаг я вижу, что оно точно меняется при выполнении метода OnAuthorization. Код:
SessionCheckAttribute sessionCheckAttribute =
(SessionCheckAttribute) MethodBase.GetCurrentMethod()?
.GetCustomAttribute(typeof(SessionCheckAttribute), true)!;