我已将WebAPI添加到旧的ASP.NET WebForms项目中,现在90%的前端都基于这些API来查看和管理数据。
此应用程序的用户是管理员和编辑者:
要访问Web应用程序,用户必须进行身份验证,并使用 Asp.Net.Identity 管理身份验证。
现在,我想知道哪种方法从安全性和性能上来说是“过滤”用户从API提取的数据的最佳方法。
当我检索用户的国家/地区代码并且仅查询该数据时,只需在查询中使用where语句进行过滤即可。
我可以在客户端每次发出请求时(即用户)在API控制器中进行验证,并检索他/她可以访问的国家/地区列表,但就性能而言,我认为我会在每次请求时重复查询。
例如,当用户开始浏览分页表中的记录时,每次页面更改都是一个请求,每次用户与国家/地区之间的关联时,我都需要验证。
我当时正在考虑使用会话变量,在登录名中进行设置,存储用户可以访问的国家/地区的代码,然后在服务器端进行验证,是否太老了,不优雅或不安全?