Ограничить доступ к странице веб-приложения MVC, использующей аутентификацию токена веб-API - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть 2 отдельные точки net проектов. Первое - MVC Веб-приложение (с AngularJS), которое имеет такие методы действий, как Dashboard, сотрудники, продукты и т. Д. c. Второе - веб-API, который имеет методы для возврата данных для отображения на панели инструментов, на страницах сотрудников. Веб-API использует Identity и токен-носитель для аутентификации.

После успешной аутентификации с помощью веб-API access_token сохраняется в хранилище браузера и перенаправляется на панель инструментов приложения MVC. Для каждого вызова веб-API в заголовке устанавливается токен, который аутентифицирует пользователя и возвращает данные. Следовательно, веб-API защищен от несанкционированного доступа, но для приложения MVC защита отсутствует. Я могу напрямую получить доступ к Dashboard, странице сотрудника без какой-либо аутентификации, и страницы отображаются в браузере. Это потому, что я не получаю UserId (который вошел в систему) в моем веб-приложении (доступно только в веб-API для методов, украшенных атрибутом [Authorize]), поэтому я не могу проверить разрешенные ресурсы для этого пользователя. Любая страница может быть доступна без входа в приложение, и даже если она вошла в систему, нет ограничений на то, какая страница разрешена для пользователя, потому что мое веб-приложение не имеет информации о пользователе и ограничениях. Я использую AngularJS для маршрута.

//web application method
 public class HomeController : Controller
  {
        public ActionResult Dashboard()
        {
            return PartialView("Dashboard");
        }
   }
//Web API method
[Authorize]
 public class HomeController : ApiController
 {
    [Authorize]
    public MainDashboard GetDashboard()
    {
      ....
      ....
    }
 }

Мой вопрос заключается в том, как защитить мое веб-приложение для доступа к ресурсам? Пожалуйста, совет.

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