在asp.net网站的上下文中,什么';检查用户是否有权访问特定记录的最有效方法是什么?
我有一个网页,您可以传入一个id参数(通过querystring),然后它使用该参数从数据库中获取数据。通常,用户会从另一个只列出用户有权访问的记录的页面导航到此页面。但是,如果他们通过在地址栏中键入URL直接进入页面,他们可以有效地查看他们喜欢的任何记录 如果他们在地址栏中键入类似的内容,他们可以访问LocationID等于5的数据库记录,即使他们不应该访问它 现在,我可以通过每次加载页面时进行数据库检查来解决这个问题,以查看当前用户是否有权访问他们试图查看的记录。然而,考虑到在大多数情况下用户不会试图访问非他们的记录,这似乎不是很有效。有人有更好的建议吗在asp.net网站的上下文中,什么';检查用户是否有权访问特定记录的最有效方法是什么?,asp.net,sql-server,permissions,Asp.net,Sql Server,Permissions,我有一个网页,您可以传入一个id参数(通过querystring),然后它使用该参数从数据库中获取数据。通常,用户会从另一个只列出用户有权访问的记录的页面导航到此页面。但是,如果他们通过在地址栏中键入URL直接进入页面,他们可以有效地查看他们喜欢的任何记录 如果他们在地址栏中键入类似的内容,他们可以访问LocationID等于5的数据库记录,即使他们不应该访问它 现在,我可以通过每次加载页面时进行数据库检查来解决这个问题,以查看当前用户是否有权访问他们试图查看的记录。然而,考虑到在大多数情况下用
谢谢 您可以使用Page.Request.urlReferer查看它们的来源,但这并不是一种完全安全的方法 如果每个用户都有其他用户无法访问的“他们自己的”数据,那么听起来您可能希望查看适当的多租户-尽管这通常是基于每个组织而不是每个用户:
加载页面时,您可以使用
内部连接,而不是进行额外检查,如果没有访问权限,则实际上不会返回任何内容
如果所有的索引都在那里,那么成本应该不会太高