Мое приложение MVC состоит из администратора и обычных пользователей.Пользователи с правами администратора могут регистрироваться как разные клиенты, использующие систему, и они могут добавлять своих соответствующих пользователей в систему.
Контроллеры уже имеют фильтры авторизации на определенных контроллерах для предотвращения несанкционированного доступа к определенным страницам / json.
Однако, скажем, у меня есть пользователь-администратор, вошедший в систему, что мешает ему проверять сообщения / сообщения Json в JavaScript и вручную вызывать 'get' с идентификатором определенных данных, которые нужно просмотреть?Например, / Users / 1
Тестируя мое приложение, я мог бы опубликовать получение AJAX для получения сведений о другом пользователе в системе, который не находился под управлением текущего аутентифицированного пользователя.
Я мог бы написать методы проверки доступа всякий раз, когда вызывается сервисный метод, чтобы посмотреть, сможет ли пользователь просмотреть данные.Являются ли они хорошими способами решения этой проблемы, не засоряя приложение методами проверки доступа повсеместно?
например, Текущая реализация
public class PeopleController : ApplicationController
{
public ActionResult GetMemberDetails(int memberId)
{
var member = _peopleService.GetMemberById(memberId);
return Json(member, JsonRequestBehavior.AllowGet);
}
}
public class PeopleService : IPeopleService
{
public MemberModel GetMemberById(int memberId)
{
// Void function which throws Unauthorised exception
MemberAccessCheck(memberId);
var member = Mapper.Map<Member, MemberModel>(_memberRepository.GetById(memberId));
return member;
}
}
Функция MemberAccessCheck вызывается много раз в моемсервис.