我正在学习ASP.NET MVC3,我刚刚为我的Model / Context创建了一个控制器。但是,任何人都可以导航到这些页面并使用它们。如何为这些页面设置权限?
答案 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 :(得分:1)
您可以使用Authorize属性来限制权限,通常这是从基类继承的。这是最常见和推荐的。
您可以使用ActionFilter属性并覆盖OnActionExecuting并在其中设置自定义逻辑。可能,但不是推荐的。
还有很多其他方法,但前两个是MVC的主要方式。