1

感谢您的任何想法。此问题涉及 ASP.NET 4.0 Web 应用程序。

然后,DetailsView 使用 ObjectDataSource(尽管任何解决方案都应适用于任何 ASP.NET DataSource 控件)进行 CRUD 操作。

用户有权查看所有记录的详细信息,但只能创建或修改与自己部门相关的单个记录。

显然我可以轻松修改列表视图以显示/删除相应的按钮

if (!_canModifySelectedWard)
{
   dptDetailView.AutoGenerateEditButton = false;
   dptDetailView.AutoGenerateInsertButton = false;
   dptDetailView.AutoGenerateDeleteButton = false;
}

但这只是删除按钮。有没有一种巧妙的方法来禁用编辑/插入/删除功能的能力?我认为一旦用户可以访问此页面,恶意请求极不可能发生,但删除功能似乎更好的做法,而不仅仅是 UI 元素。

我可以将关联的 objectdatasource 的 InsertMethod 等设置为 null,但这几乎看起来像是一个 hack。

4

1 回答 1

1

您的对象数据源绑定到一个类,该类负责提供对象数据源请求的数据。这是应执行额外检查以确保不会发生未经授权的数据访问的地方。从用户体验的角度来看,隐藏按钮是一个好主意,但您应该始终确保您的业务规则得到执行。

抱歉,我无法提供更详细的帮助。也许如果你能更详细地描述你正在做的事情,或者发布一些有帮助的代码。

干杯。

于 2012-10-18T21:50:11.300 回答