如何在C#Web服务中为每个用户请求设置权限

时间:2019-07-02 12:08:40

标签: c# web-services

当前,我正在DMS项目中工作,用户可以在其中保存和检索文档。 现在,我想为每个用户设置服务级别的权限。现在,我能够捕获每个用户请求,在该请求中,我获得了请求,用户名和他的角色,用户名的链接。假设我有三个角色,一个是具有所有权限的管理员,第二个角色是超级用户。所以超级用户可以创建用户并分配部门来分配它使用项目/分配部门的部门。第三卷是业务员,我想限制创建一个用户,但他可以访问不在用户中的部门部分的部门列表。要显示部门列表,我正在使用相同的请求链接,即项目/分配部门。那么如何处理这种情况。 :(

将每个卷特定的链接存储到表中,然后检查每个请求是否很好?

这是我的结构。

 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 :(得分:0)

如果要构建RESTful API,则应该对项目/分配部门使用GET和POST方法。比您可以将控制器中的两个动作都限制为各自的角色。

如果要构建Web应用程序,则可以创建部分视图或查看组件,并根据用户角色呈现每个组件。