Как установить разрешение для каждого пользовательского запроса в веб-сервисах c # - PullRequest
1 голос
/ 02 июля 2019

В настоящее время я работаю над проектом 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

       }
  }

1 Ответ

0 голосов
/ 02 июля 2019

Если вы создаете RESTful API, у вас должны быть методы GET и POST для item / assigndepartment. Чем вы можете ограничить оба действия в контроллере соответствующими ролями.

Если вы создаете веб-приложение, вы можете создавать частичные представления или просматривать компоненты и отображать каждый компонент в зависимости от роли пользователя.

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