Как мы можем создать пользовательский атрибут в ядре .net, чтобы проверить активированный сеанс - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь создать пользовательский атрибут, который поможет мне проверить сессию. Но в ядре .net я не могу обрабатывать сессии вне контроллера. После исследования я получаю этот код в сети, но когда я пытаюсь записать атрибут в действии, которое дает мне возможность предоставить HttpContextAccessor в конструкторе, может любой помочь мне для ядра .net, я реализовал тот же код для.net Framework в mvc нужна помощь для .net core

    public class SessionCheckAttribute : ActionFilterAttribute 
    {
        private static HttpContextAccessor _httpContextAccessor;

        public SessionCheck(HttpContextAccessor httpContextAccessor)
        {
            _httpContextAccessor = httpContextAccessor;
        }

        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {                
            if (_httpContextAccessor. HttpContext.Session.GetString("Sessionname").ToString() == null )
            {                   
                //FormsAuthentication.SignOut();
                filterContext.Result =
               new RedirectToRouteResult(new RouteValueDictionary
                        {
                              { "action", "LogIn" },
                            { "controller", "Login" }
                         });    
                return;
            }
        }
    }

1 Ответ

0 голосов
/ 15 октября 2019

Вы можете получить доступ к HttpContext с ActionExecutingContext. Просто измените _httpContextAccessor.HttpContext на filterContext.HttpContext

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...