Вам следует учитывать атрибут Authorize, если вы пытаетесь аутентифицировать / авторизовать пользователей.
Вы можете реализовать BaseController, у которого есть свойство User, и ваши контроллеры расширяются от него. Таким образом, вам понадобится только один раз этот код.
Кроме того, вы можете переопределить метод OnActionExecuting BaseController. В этом методе, если вы можете проверить существующий сеанс пользователя и, если он не существует, вы можете установить свойство filterContext.Result (на что угодно), чтобы предотвратить выполнение действия. Вероятно, вам следует перейти на страницу входа или что-то еще.