Как проверить сеансы на каждое действие контроллера? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть контроллер с именем AllEntities, он имеет несколько действий, таких как GetEntityByTypeId и GetLastEntity

Я хочу выполнять проверку сеанса всякий раз, когда AllEntities контроллер используется

какПредположим, я запрашиваю URL http://localhost:59656/AllEntities/GetLastEntity
, тогда он должен проверить, назначен ли сеанс погоды или нет

Один из способов сделать это - поместить условие if (Session["userName"] == null)
в каждое действие этого контроллера
Как это может быть проверено один раз для всего AllEntities контроллера

любая помощь будет оценена

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете переопределить метод контроллера Initialize, который будет запускаться при каждом действии.Я использую его для заполнения нужных элементов ViewBag в нескольких / всех видах.

public class YourController : Controller
{

    protected override void Initialize(RequestContext requestContext)
    {
        base.Initialize(requestContext);

        try
        {
            //do your session check here...

            //alternatively, if you wanted to limit to certain actions in your controller you could say: 
            var actionName = requestContext.RouteData.Values["action"].ToString().ToLower();
            if(actionName == "actionName" || actionName == "actionName2") {
               //do your limited session work...
            }
        }
        catch (Exception e) { }

    }
    ...
...