感谢您的任何想法。此问题涉及 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。