2009-12-25 61 views
1

我和朋友正在編寫一個C#IRC Bot,允許用戶通過插件擴展它的功能。我們需要它,以便每個命令都能夠擁有自己的權限。這樣只有特定級別或更高級別的用戶才能執行該命令。我們很難決定如何做到這一點。IRC中的插件權限Bot

權限系統爲1-10。 1是最少的特權,10是最多的特權。每個用戶將被分配1-10個權限。每個命令還會爲自己分配一個必需的權限級別。我的問題實質上是:我怎樣才能製作一個per-command權限系統,插件可以在其中有多個命令。

我希望堆棧溢出的好人可以幫助我。請耐心等待,因爲這是我在這裏問的第一個問題。任何幫助將不勝感激!謝謝!

回答

0

肯定會工作,另一種方式是'能力'的概念。每個用戶都有一個能力列表,例如'更新用戶','刪除用戶','下載文件'等。列表是無限的。您可以授予用戶功能,並且每個功能都可以根據所需的列表進行檢查

if(!checkCaps('shell-cmd','google','open-url'))sendError('sorry,no perms' )

角色可以定義其聚集一組權限,比如「客人」,「用戶」,「經理」,「管理員」等

+0

我也喜歡這個想法。謝謝! – 2009-12-25 05:17:13

1

我想創建自己的實現的IPrincipal的這將返回代表用戶授權級別角色的值爲1-10。您在驗證用戶身份時將其作爲主體許可。

然後,在所有方法(即插件方法和其他方法)上應用PrincipalPermission屬性以允許具有適當角色的人員僅執行代碼。

例如,如果我有五個級別,那麼我分配的角色1,2,3,4,5,

可以有一種方法具有這樣的作用屬性被設置爲6 PrincpalPermission屬性,我將無法訪問它,另一個方法具有Role屬性設置爲3的PrincipalPermission屬性,我會這樣做。

+0

謝謝!我會研究原則。 – 2009-12-25 05:16:43