2012-10-18 66 views
1

感謝您的任何想法。此問題涉及ASP.NET 4.0 Web應用程序。asp.net datasource detailsview和CRUD權限

DetailsView然後使用ObjectDataSource(儘管任何解決方案應該適用於任何ASP.NET數據源控件)用於CRUD操作。

用戶有權查看所有記錄的詳細信息,但只能創建或修改與自己部門相關的單個記錄。

很明顯,我可以很容易地修改列表視圖來顯示/刪除相應的按鈕

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

但這只是刪除按鈕。有沒有簡單的方法來禁用編輯/插入/刪除功能?我認爲一旦用戶有權訪問此頁面,惡意請求就不太可能發生,但似乎更好的做法是刪除功能,而不僅僅是UI元素。

我可以將關聯的objectdatasource的InsertMethod等設置爲null,但這幾乎看起來像一個黑客。

+0

查看Sql Server中的應用程序角色和安全性。根本不給CUD權限的基礎表是另一個,並通過存儲過程進行更新將是另一個 –

回答

1

您的對象數據源綁定到負責提供對象數據源請求的數據的類。這是應該執行額外檢查的地方,以確保未經授權的數據訪問不會發生。 從用戶體驗的角度來看,隱藏按鈕是一個好主意,但您應該始終確保您的業務規則得到執行。

對不起,我無法提供任何更詳細的幫助。也許如果你能夠更詳細地描述你正在進行的操作,或者發佈一些有用的代碼。

乾杯。