您的位置:首页 > 其它

netcore - MVC的ActionFilter的使用

2016-08-08 21:06 381 查看
经过一周的时间没有分享文章了,主要是在使用.netcore做一个小的项目,项目面向大众用户的增删改查都做的差不多了,打算本周在云服务器上部署试试,很期待,也希望上线后大家多多支持;以上纯属个人废话,来一起看看今天的正篇环节:

.继承IActionFilter来定义个验证登录的流程例子

.ActionFilter中怎么使用依赖注入

下面一步一个脚印的来分享:

.继承IActionFilter来定义个验证登录的流程例子

首先,咋们定义一个名叫FilterTestController的Controller,返回一个JsonResult结果;为了例子查看的方便性,同时在此文件中定义一个名MoResponse的类,对应的代码如下:

public class CheckLoginAttribute : Attribute, IActionFilter
{
private readonly LogService _logService;
public CheckLoginAttribute(LogService logService)
{

_logService = logService;
}

public void OnActionExecuted(ActionExecutedContext context)
{

Console.WriteLine(DateTime.Now + "end...");
}

public void OnActionExecuting(ActionExecutingContext context)
{

Console.WriteLine(DateTime.Now + "start...");

var path = context.HttpContext.Request.Path;
//context.Result = new RedirectResult($"/Login?returnUrl={path}");

_logService._LogRequest();
}
}


View Code
好了咋们一起dotnet run看到的效果如:



这个依赖注入到Filter中就成功了,其实上面定义的MyActionFilterAttribute也可以看做多余吧,因为在Action上使用的其实就是TypeFilterAttribute自身的构造函数方法,咋们可以直接在Action上使用TypeFilter如图:



两者效果是一样的,只是定义一个Filter可以记录其他的日志信息或干其他的事情罢了;这次分享的内容就是这样了,不知道描述的是否清晰,希望多多支持,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: