asp.net mvc-mvc c#中的前端控制器



有人能告诉我MVC 4 c#visual studio中的前控制器是什么吗?

我的意思是,我必须做一个大的应用程序,我想添加安全性来限制对控制器和操作的访问。我曾经在CodeIgniter的前端控制器的逻辑中这样做,在会话中添加一个令牌,所以如果有人想在浏览器上手动编写路由,他就无法访问。

我一直在读关于[Authorize(Roles="Admin")]的文章,我不得不承认这是一个解决方案,但这意味着我必须写入所有控制器的每一个方法,我希望将其集中在带有IF/ELSE的前端控制器中。

PD:如果你不知道怎么做,至少试着告诉我在MVC c#visual studio的哪里可以找到前控制器。

谢谢大家。

MVC中没有前端控制器。您需要创建一个基本控制器,并且您的每个控制器都将继承基本控制器。

public class BaseController : Controller
    {
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var getControllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
            var getActionName = filterContext.ActionDescriptor.ActionName;
            //Write your code here
        }
    }

现在使用基本控制器继承您的控制器。

public class AccountController : BaseController
    {
        //Your action goes here.
    }

ASP MVC中没有前端控制器。我认为你正在寻找的是某种基本控制器,所有其他控制器都从中继承。

您可以将此Authorize属性添加到方法或类(整个控制器)中。如果每个动作都需要这个属性,我建议创建一个主控制器,让每个控制器都继承这个控制器。

考虑使用动作过滤器。http://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/understanding-action-filters-cs

相关内容

  • 没有找到相关文章

最新更新