WebAPI授权和数据过滤

时间:2019-05-24 20:25:31

标签: c# asp.net asp.net-web-api

我已将WebAPI添加到旧的ASP.NET WebForms项目中,现在90%的前端都基于这些API来查看和管理数据。

此应用程序的用户是管理员和编辑者:

  • 管理员可以管理所有数据
  • 相反,
  • 编辑者只能管理他们关联的国家/地区的数据。我的数据库中有一张表,可将用户与一个或多个国家/地区联系起来。

要访问Web应用程序,用户必须进行身份验证,并使用 Asp.Net.Identity 管理身份验证。

现在,我想知道哪种方法从安全性和性能上来说是“过滤”用户从API提取的数据的最佳方法。

当我检索用户的国家/地区代码并且仅查询该数据时,只需在查询中使用where语句进行过滤即可。

我可以在客户端每次发出请求时(即用户)在API控制器中进行验证,并检索他/她可以访问的国家/地区列表,但就性能而言,我认为我会在每次请求时重复查询。

例如,当用户开始浏览分页表中的记录时,每次页面更改都是一个请求,每次用户与国家/地区之间的关联时,我都需要验证。

我当时正在考虑使用会话变量,在登录名中进行设置,存储用户可以访问的国家/地区的代码,然后在服务器端进行验证,是否太老了,不优雅或不安全?

0 个答案:

没有答案