我正在学习 ASP.NET MVC3,我刚刚为我的模型/上下文创建了一个控制器。但是,任何人都可以导航到这些页面并使用它们。如何设置这些页面的权限?
问问题
703 次
2 回答
2
AuthorizeAttribute将是您的第一道防线。您可以根据组成员身份或用户名授予访问权限。工作起来很像代码访问安全/主体权限属性,但并不难使用。
例子:
// 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 的覆盖,这样您就不会拼错或忘记它们。这也会让你的代码变干,这总是很棒的。
于 2012-05-10T18:15:10.127 回答
1
您可以使用 Authorize 属性来限制权限,通常这是从基类继承的。这是最常见和推荐的。
您可以使用 ActionFilter 属性并覆盖 OnActionExecuting 并在其中设置自定义逻辑。可能,但不推荐。
还有很多其他方法,但前两种是 MVC 的主要方法。
于 2012-05-10T18:14:53.887 回答