我想實現一個安全機制來自動測試特定的插件權限和方法的安全特權,我已經有點卡住如何讓這個工作。屬性用於檢查方法權限
我寫一個自定義MEF元數據屬性,需要一個constructor屬性,如:
params PluginPermission[] permission
這包含了所有的權限的數組,該插件是理所當然的。
的PluginPermission類的樣子:
PluginPermission.cs
public enum PluginPermission
{
CreateUsers,
DeleteUsers,
ReadPassword,
WritePassword,
AddUsersToGroups,
AddGroups,
DeleteGroups
}
我也寫的是針對個人的方法和採用一個或多個PluginPermission對象告訴需要什麼樣的權限將被執行的各個方法的系統RequiredPermissionAttribute 。這些被施加到接口插件等:
ILicensingManagement.cs
[RequiredPermission(PluginPermission.CreateUsers)]
bool AddUser(string userName);
顯然,如果插件不具有所需的權限爲不執行該方法的特定方法。
我堅持的是如何實際獲得RequiredPermissionAttribute類中的測試方法以在該方法執行之前運行,以及如果該方法的權限需求未被該插件滿足如何正常退出該執行。
我看着的xUnit BeforeAfterTestAttribute但執行顯得那麼具體的我stuggled拉開的源代碼,在解決辦法。
事實上,我已經使用反射來檢查某些權限和wotnot,我停留在如何注入邏輯的實際執行對所需的方法權限授予類級權限的測試只是有點。 確實屬性是非常「愚蠢」,只是裝飾而已。 – Jammer
不,這並不是真的要在用戶安全方面強制執行任何有關插件必需或能夠做的事情。我們的用戶安全性全部在LDAP中實現。感謝您的意見。 – Jammer