2009-02-11 60 views
3

我已經在我使用的是ASP.Net Web窗體應用程序基於表單的身份驗證與成員和角色提供者,這是很好的用於驗證和控制訪問目錄和/或文件。現在我發現自己需要控制對各個實體實例的讀取,寫入和刪除訪問,例如能夠更新或刪除客戶實例。我一直在想着實現這一點的好方法,但我並不知道從哪裏開始。我讀到the Authorize attribute in ASP.Net MVC並認爲這將是不錯的東西類似 - 裝飾方法,您可以控制器在ASP.Net MVC的行動方式。我不知道任何可以在Web Forms世界實現這一點的方法,也不知道任何框架或其他工具可能會幫助我朝這個方向發展。任何建議,無論是在現有的解決方案和/或如何設計我自己的實施,將不勝感激。ASP.Net Web窗體實體級訪問控制

回答

6

最簡單的方法是,要求用戶是與PrincipalPermissionAttribute所討論的方法所需的作用(S)的成員。

[PrincipalPermission(SecurityAction.Demand, Role="Supervisor")] 
[PrincipalPermission(SecurityAction.Demand, Role="Owner")] 
public void DeleteSomething() {...} 

請注意,這意味着主管或所有者可以DeleteSomething()

+0

感謝和贊成票。在我的無知中,我從來不知道PrincipalPermission屬性,因此我會研究它。我將暫時擱置這個問題一段時間,看看它是否吸引了任何額外的見解。 – 2009-02-11 23:47:18

0

我不認爲「的PrincipalPermission」是一個很好的計算策略。 如果我需要爲另一個角色允許DeleteSomthing()? 同樣,如果我需要刪除DeleteSomthing()的現有角色? 唯一的方法是更改​​代碼級別的屬性。對於大型項目來說這是不可行的。

我也在尋找一個不錯的解決方案。