Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net网站的上下文中,什么';检查用户是否有权访问特定记录的最有效方法是什么?_Asp.net_Sql Server_Permissions - Fatal编程技术网

在asp.net网站的上下文中,什么';检查用户是否有权访问特定记录的最有效方法是什么?

在asp.net网站的上下文中,什么';检查用户是否有权访问特定记录的最有效方法是什么?,asp.net,sql-server,permissions,Asp.net,Sql Server,Permissions,我有一个网页,您可以传入一个id参数(通过querystring),然后它使用该参数从数据库中获取数据。通常,用户会从另一个只列出用户有权访问的记录的页面导航到此页面。但是,如果他们通过在地址栏中键入URL直接进入页面,他们可以有效地查看他们喜欢的任何记录 如果他们在地址栏中键入类似的内容,他们可以访问LocationID等于5的数据库记录,即使他们不应该访问它 现在,我可以通过每次加载页面时进行数据库检查来解决这个问题,以查看当前用户是否有权访问他们试图查看的记录。然而,考虑到在大多数情况下用

我有一个网页,您可以传入一个id参数(通过querystring),然后它使用该参数从数据库中获取数据。通常,用户会从另一个只列出用户有权访问的记录的页面导航到此页面。但是,如果他们通过在地址栏中键入URL直接进入页面,他们可以有效地查看他们喜欢的任何记录

如果他们在地址栏中键入类似的内容,他们可以访问LocationID等于5的数据库记录,即使他们不应该访问它

现在,我可以通过每次加载页面时进行数据库检查来解决这个问题,以查看当前用户是否有权访问他们试图查看的记录。然而,考虑到在大多数情况下用户不会试图访问非他们的记录,这似乎不是很有效。有人有更好的建议吗


谢谢

您可以使用Page.Request.urlReferer查看它们的来源,但这并不是一种完全安全的方法

如果每个用户都有其他用户无法访问的“他们自己的”数据,那么听起来您可能希望查看适当的多租户-尽管这通常是基于每个组织而不是每个用户:


加载页面时,您可以使用
内部连接,而不是进行额外检查,如果没有访问权限,则实际上不会返回任何内容

如果所有的索引都在那里,那么成本应该不会太高