У меня есть 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()
{
....
....
}
}
Мой вопрос заключается в том, как защитить мое веб-приложение для доступа к ресурсам? Пожалуйста, совет.