一個n層圖層項目。如何將通用代碼應用於繼承基類的繼承類;以構建只讀用戶
在businesslayer中,有一個繼承的類叫做BaseEdit其中包含承包商和基礎屬性。
大約有30 CustomEdit(繼承類),它們都擁有一些方法 「負載」, 「保存 」和「 刪除」。
該現有系統的要求是增加一個只讀用戶。考慮到工程的費用
可能的解決方案:
1)修改BaseEdit因此所有CustomEdit可以保持不變。 系統將使用httpcontext檢查會話中的「用戶角色」,然後接受或拒絕用戶的操作。
所以問題1:vb.net可以實現這個嗎?
'BaseEdit
Public Function Save() Boolean
'check session in BusinessLayer, if it is ready only user
'then Validation is false
End Function
' CustomEdit
Public Function Save() Boolean
'Proceed the save
End Function
但是當我調用CustomEdit.Save()時,BaseEdit.Save()將不會被調用。 似乎vb.net不支持這種部分方法。 有沒有辦法實現這一點而不需要改變CustomEdit?
2)在SQL Server中,檢查會話狀態並限制用戶訪問插入或更新StoredProc。 問題2:應該發生在SQL Server中嗎?任何人都有這方面的經驗?任何評論的優勢/劣勢?
問題3:在我看來,用戶限制應該通過可靠的控制在web層或業務層實現。 有人告訴我安全訪問的東西應該和數據庫一樣,是不是?
不要爲了吸引更多注意力而添加C#標籤。你明確地要求VB.NET。 – 2012-02-20 14:18:25
所以你重載了'Save',但想要調用基類'Save'。然後,不要覆蓋它或調用'base.Save()'。 – 2012-02-20 14:23:06
@Tim Schmelter我修改了一下這個問題。如果我在Custom.Save()中調用Custom.Save()並且不在Custom.Save()中說BaseEdit.Save(),那麼BaseEdit中的save()仍然不會被調用。 – 2012-02-20 14:36:42