2011-10-13 81 views
1

我正在創建我的第一個ASP.NET MVC 3應用程序,並且在創建基於用戶角色的類實例時遇到了問題。塊根據用戶角色調用類方法asp.net mvc 3

我有一個叫做Account的類,它包含有關用戶帳戶的信息以及幾種允許我操作(更新)用戶帳戶信息的方法。例如ChangeNickName,AddToGroup,RemoveFromGroup,Ban等。

正如你所看到的問題,這些方法是,我不想讓任何人使用AddToGroup或禁令的方法,但與指定角色的唯一用戶(我使用ASP.NET默認角色執行系統)

所以我不知道是否有一種方法,我可以添加屬性[授權(角色=「管理員」)]我的AddTogroupMethod就像我在控制器上使用它的方法

我知道,正確實施控制器我不需要這樣的東西,但如果用戶不是指定角色的一部分,我想確保我不允許任何人創建類的實例(或者偶然使用指定的方法)。

因此,舉例來說,如果我偶然添加到用戶控制器AddToGroup方法訪問我仍然能夠防止他們利用,因爲連接到這種方法

屬性的錯誤。如果我解決不了這個問題,屬性是有辦法讓VS從調試應用程序阻止我,如果我做出AddToGroup方法的調用由XY類

如果您有任何的IDE如何使這項工作,我願意接受建議

比提前

+0

授權無關,與你想做的事......你最好什麼考慮在你的代碼中自己實現它。 –

回答

0

您應該使用AuthorizeAttribute,但是您可以使用Roles.UserIsInRole檢查代碼中當前用戶的角色。

有一個在這裏的MVC在這一點信息(大會似乎3.5/4.0之間已經改變):

asp.net mvc -> Roles.IsUserInRole(username,role)