当前,我正在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
}
}
答案 0 :(得分:0)
如果要构建RESTful API,则应该对项目/分配部门使用GET和POST方法。比您可以将控制器中的两个动作都限制为各自的角色。
如果要构建Web应用程序,则可以创建部分视图或查看组件,并根据用户角色呈现每个组件。