首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止对区域/控制器方法的访问,但允许继承的控制器运行方法asp .net mvc5

阻止对区域/控制器方法的访问,但允许继承的控制器运行方法asp .net mvc5
EN

Software Engineering用户
提问于 2014-01-08 09:24:17
回答 2查看 1.8K关注 0票数 1

我试图通过键入urlwebsite.com/ area 1/basecontroller/ method 1(这个区域还包含将要显示的视图)来阻止访问整个区域/控制器,同时仍然能够继承该控制器并使用原来的控制器(例如so website.com/area2/extendedbasecontroller/method1. )。

扩展的basecontroller中不存在method1,它将只执行来自basecontroller的method1。

这是可能的,还是可以以另一种方式实现?

EN

回答 2

Software Engineering用户

发布于 2014-08-07 13:25:40

另一种方法是您想要的--提取一个执行method1的类,然后在两个控制器中引用这个类。MVC控制器实际上不应该在一般情况下相互调用。

票数 1
EN

Software Engineering用户

发布于 2014-01-09 07:44:17

我不知道这是否是个好办法,但看起来这是我想要做的事情:

代码语言:javascript
复制
public class BlockActionFilter : ActionFilterAttribute,IActionFilter
{
    void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext) 
    {    
        var area = filterContext.RouteData.DataTokens["area"].ToString();

        if(area == "area1")
        {
            filterContext.Result = new RedirectResult("~/Home/Index");
        }

        this.OnActionExecuting(filterContext);
    }            
}

我可以通过将basecontroller继承到area1中的extendedbasecontroller并通过该方法来访问area2中的方法,但不能在area1中直接使用basecontroller

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/223464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档