2009-02-19 73 views
0

我希望能夠獲得一些強類型的方法來了解正在執行的操作。哪個操作正在作爲強類型對象執行

澄清即時消息操作AOP,我只允許訪問給定的操作,如果用戶具有該操作的權限。

使用字符串來確定要檢查哪個規則的問題是,如果某些開發人員重命名某個操作,我將不會收到編譯錯誤,告訴我我的規則已損壞。

任何想法??

回答

1

開發執行檢查的屬性。將該屬性和任何必要的選項應用於要保護的操作。編寫單元測試,檢查所涉及的操作是否存在並用您的屬性進行修飾(使用適當的選項)。在你的屬性中,你不需要知道正在執行什麼操作,只要當前用戶是否通過屬性選項配置的測試即可。

我有幾個不同的屬性,我從AuthorizeAttribute派生出來,完成這種事情。

public class RequiresEmailAttribute : AuthorizeAttribute 
{ 
     ... implements the logic to test whether the current user 
     ... has an email address and redirects to error view if no 
     ... email address is found 
} 

[RequiresEmail] 
public ActionResult SendEmail(string to) 
{ 
    .... 
} 
相關問題