Нет ничего плохого в том, чтобы использовать сеанс напрямую с ваших контроллеров (это одна из причин, по которой он был представлен как свойство класса Controller).И я не вижу преимущества замены:
Session["foo"] = "bar";
вызовом метода расширения:
this.SetSessionVar("foo", "bar");
Где это, возможно, немного интереснее, это ваш универсальныйgetter, но все же он не является безопасным типом, так как вы используете приведение внутри этого метода, что также могло быть сделано в действии контроллера.Итак, в заключение я бы не сказал, что это плохая практика, но я не вижу никакой пользы от такого класса, и он также делает ваш код менее читаемым для других разработчиков, которым необходимо понимать, что это метод расширения и что стоит за этим.сцены это просто использует сеанс.