Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/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_Entity Framework_Linq To Sql_Authorization_Dynamic Data - Fatal编程技术网

ASP.NET动态数据:仅对特定行的访问权限

ASP.NET动态数据:仅对特定行的访问权限,asp.net,entity-framework,linq-to-sql,authorization,dynamic-data,Asp.net,Entity Framework,Linq To Sql,Authorization,Dynamic Data,我想在下一个项目中使用ASP.NET动态数据,但有一个问题a无法解决。在数据库中,我们按行管理授权。例如,不允许任何用户查看Contracts表的所有行。因此,合同和用户之间存在多对多关系。因此,每次动态数据执行Select以显示所有契约时,它都必须查看ContractUsers连接表,以查看当前用户可以看到哪些契约(通过存储在会话变量中的UserID进行过滤)。当然,这些连接表应该对用户不可见。 默认情况下,动态数据返回表中的所有行,因此是否可以为用户执行的每个查询自定义此行为? 我想将动态数

我想在下一个项目中使用ASP.NET动态数据,但有一个问题a无法解决。在数据库中,我们按行管理授权。例如,不允许任何用户查看Contracts表的所有行。因此,合同和用户之间存在多对多关系。因此,每次动态数据执行Select以显示所有契约时,它都必须查看ContractUsers连接表,以查看当前用户可以看到哪些契约(通过存储在会话变量中的UserID进行过滤)。当然,这些连接表应该对用户不可见。 默认情况下,动态数据返回表中的所有行,因此是否可以为用户执行的每个查询自定义此行为? 我想将动态数据与LINQtoSQL结合使用,但如果使用实体框架可以更容易地完成这项任务,我也会考虑这一点


感谢您的帮助和时间。

您不应该使用动态数据,因为您需要完全控制查询并手动编写所有linq查询以添加数据级安全性。如果您仍然坚持使用动态数据,请注意,您仍将自己编写大部分页面,并且只使用动态模板。您必须手动定义任何数据源,并正确传递where条件以根据记录的用户筛选结果

此外,LINQtoSQL不能隐藏连接表,只有当连接表只包含多对多关系的两个FK时,实体框架才能做到这一点。如果此表包含要在应用程序中使用的任何其他列,则必须将其映射为任何其他实体,并且动态数据将其显示为实体


动态数据是一种快速创建简单应用程序的技术,您需要通过web界面提供对数据库的访问,但您描述的不是一个简单的场景。您需要每个记录的授权,这在实体类型之间可能有所不同。

您不应该使用动态数据,因为您需要完全控制查询并手动写入所有linq查询以添加数据级安全性。如果您仍然坚持使用动态数据,请注意,您仍将自己编写大部分页面,并且只使用动态模板。您必须手动定义任何数据源,并正确传递where条件以根据记录的用户筛选结果

此外,LINQtoSQL不能隐藏连接表,只有当连接表只包含多对多关系的两个FK时,实体框架才能做到这一点。如果此表包含要在应用程序中使用的任何其他列,则必须将其映射为任何其他实体,并且动态数据将其显示为实体


动态数据是一种快速创建简单应用程序的技术,您需要通过web界面提供对数据库的访问,但您描述的不是一个简单的场景。您需要每个记录的授权,这在实体类型之间可能有所不同。

在动态数据中实现这种解决方案可能需要创建自定义实体模板;这并不容易,但一旦完成,就不需要创建自定义页面,只需要编辑页面模板

我认为,检查S.J.诺顿在DD方面所做的出色工作以及在其网站上所展示的出色工作将非常有用


您好,F.

在动态数据中实现这样的解决方案可能需要创建自定义实体模板;这并不容易,但一旦完成,就不需要创建自定义页面,只需要编辑页面模板

我认为,检查S.J.诺顿在DD方面所做的出色工作以及在其网站上所展示的出色工作将非常有用


您好,F.

但是如果我不使用动态数据,我仍然必须自己实现所有这些。我认为动态数据至少是一个很好的使用框架。是的,您必须自己实现它。所以这不会是一个缺点,因为我无法绕过实现。但也许动态数据在其他方面会让生活变得更轻松。但如果我不使用动态数据,我仍然必须自己实现这一切。我认为动态数据至少是一个很好的使用框架。是的,您必须自己实现它。所以这不会是一个缺点,因为我无法绕过实现。但也许动态数据在其他方面会让生活更轻松。