2012-05-10 92 views
0

我正在學習ASP.NET MVC3,並且爲我的Model/Context創建了一個控制器。但是,任何人都可以導航到這些頁面並使用它們。我如何設置這些頁面的權限?如何爲我的CRUD設置權限?

+2

我建議訪問http://www.asp.net/mvc/overview/security,然後再問這樣的一般問題。 – marapet

+0

謝謝,這真的很有幫助。 –

回答

2

AuthorizeAttribute將成爲您的第一道防線。您可以根據組成員資格或用戶名授予訪問權限。與Code Access Security/Principal Permission Attributes非常相似,但並不難。

例子:

// Allow Everybody in 
public ActionResult Index() 
{} 

// Allow only Editors/Admin to post edits back to controller. 
[HttpPost] 
[Authorize(Roles="Admin,Editor"] 
public ActionResult Edit(EditViewModel vm) 
{} 

您可以在類或方法級別使用它們,這樣你就可以有一個基本的控制器,只有讓授權用戶使用應用的某些控制器。

如果您發現自己一遍又一遍地使用相同的組或用戶,我會創建一個覆蓋預定義了這些組的AuthorizeAttribute,這樣您就不會拼錯或忘記它們。這也會干擾你的代碼,這總是很棒的。

1

您可以使用Authorize屬性來rstrict權限,通常這是從基類繼承的。這是最常見和推薦的。

您可以使用ActionFilter屬性並覆蓋OnActionExecuting並在其中設置自定義邏輯。可能的,但不是推薦的。

還有很多其他方法,但前兩個是MVC的主要方法。