我创建了应用程序,在该应用程序中,除了允许登录的用户之外,其他所有操作都应超出限制。
我应该[Authorize]
在每个班级的标题前添加注释吗?像这儿:
namespace WebApplication2.Controllers {
[Authorize]
public class HomeController : Controller {
public ActionResult Index() {
return View();
}
public ActionResult About() {
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact() {
ViewBag.Message = "Your contact page.";
return View();
}
}
}
或有捷径吗?如果我想更改特定控制器中唯一动作的规则怎么办?
最简单的方法是Authorize
在过滤器配置中添加属性,以将其应用于每个控制器。
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
//Add this line
filters.Add(new AuthorizeAttribute());
}
}
另一种方法是让所有控制器都从基类继承。我经常这样做,因为几乎所有控制器都可以使用一些共享代码:
[Authorize]
public abstract class BaseSecuredController : Controller
{
//Various methods can go here
}
现在Controller
,您的所有控制器都应该继承这个新类,而不是继承自:
public class MySecureController : BaseSecuredController
{
}
注意:AllowAnonymous
当您需要非登录用户访问属性时,请不要忘记添加属性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句