0

我是 MVC 的新手,但我想开发一个自定义属性,该属性将是自定义操作过滤器,可以在控制器或操作方法级别使用。它将检查请求来自同一域或不同域。如果不同的域,那么未经授权的错误将被发送给调用者。

属性看起来像

[IsRequestFromSameDomain]
public class HomeController : Controller {
  public ActionResult Index() {


  }
}

我想从调用者可以理解的地方发送错误代码和错误消息,他无法访问来自不同域的任何控制器或操作方法。

另一个最重要的事情是属性可以用于整个控制器,也可以用于任何操作方法。所以指导我怎么做。谢谢

4

1 回答 1

2
public class IsRequestFromSameDomainAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if(filterContext.HttpContext.Request.Url.Host != filterContext.HttpContext.Request.UrlReferrer.Host)
        {
            //The HOST is not the same, so you need to redirect to an error view or something like that
        }
    }
}
于 2013-11-13T13:57:34.650 回答