这里我们来写一段代码拦截全局请求里的token,并将token解析成一个用户信息回传到每个方法
public class FilterController: ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
//拦截全局里是否带了token
if (string.IsNullOrEmpty(context.HttpContext.Request.Query["token"]))
{
context.Result = new JsonResult(
//该类是KeeSoft框架里自带的一个返回结果集
new KeeSoft.Core.ResponseMessage()
{
Status = KeeSoft.Core.ResponseStatus.ERROR.ToString(),
Text = "token缺失"
}
);
}
//假设有这么类可以将token解析成用户基本信息
KeeSoft.Mini.Utils.User user =
new KeeSoft.Mini.Utils.User(context.HttpContext.Request.Query["token"]);
//接着我们将这个user实例注册到控制器的方法里,之后你在控制器里命名带有user的参数,
//将自动转成 KeeSoft.Mini.Utils.User类型的实例
context.ActionArguments["user"] = user;
}
}
有个拦截类,下一步就是将该类注入的全局应用中
public void ConfigureServices(IServiceCollection services)
{
//在这里你已经拦截器FilterController注入到全局请求中
services.AddMvc(options=> {
options.Filters.Add<FilterController>();
});
}
可以用上面两端代码做个demo
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有