В настоящее время я работаю над проектом DMS, в котором пользователь может сохранять и извлекать документы.
Теперь я хочу установить разрешение для каждого пользователя на уровне обслуживания. Теперь я могу отследить каждый пользовательский запрос, в котором я получил ссылку на запрос, имя пользователя и его список, идентификатор пользователя. Предположим, у меня есть три роли, одна из которых - администратор, у которого есть все разрешения, а второй - супервизор. Поэтому супервизор может создать пользователя и назначить отдел для назначения отдела, который он использует, то есть item / assigndepartment. и третий ролик - клерк, которого я хочу ограничить, чтобы создать пользователя, но он может получить доступ к списку отдела в разделе отдела, а не в пользователе. для отображения списка отделов я использую ту же ссылку запроса, то есть item / assigndepartment. так как справиться с этой ситуацией. (
хорошо ли хранить каждую конкретную ссылку в таблицу, а затем проверять каждый запрос ???
вот моя структура.
public class IdentityBasicAuthenticationAttribute : Attribute,
IAuthenticationFilter
{
public string Realm { get; set; }
public async Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
{
HttpRequestMessage request = context.Request;
if (context.Request.RequestUri.LocalPath == "/Login/UserLogin")
{
return;
}
// here i am catching the each request from which i am getting the user name,roll and user id.
}
}
и контроллер
public class ItemController : ApiController
{
//item/assigndepartment
[HttpPost]
public CategoryList assigndepartment(Departments dept)
{
catList = _itemsModel.assigndepartment(dept);
return catList;
}
}
и модель
public class ItemModel
{
publiv void assigndepartment()
{
\\ DB Logic
}
}