2012-05-10 97 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的主要方法。