1.添加过滤器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
namespace Demo_Api1.Service
{
public class UsersAtuhorizeAttribute : IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
var token = context.HttpContext.Request.Headers["token"]; //获取请求头header携带的token值
if (token != "12313") //进行比较
{
//不通过,则返回验证失败
context.Result = new JsonResult(
new
{
code = -1,
msg = "验证失败"
});
}
}
}
}
2.使用filter实现验证
使用 TypeFilter 标记Controller或者方法
[TypeFilter(typeof(UsersAtuhorizeAttribute))]
也可以用ServiceFilter(定义多种生命周期过滤器)
先在configservices注册
然后使用 [ServiceFilter(typeof(UsersAtuhorizeAttribute))] 标记controller或者方法
使用网页请求访问
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="./js/axios.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="id"/>
<button @click="getUser">请求所有数据</button>
</div>
<script>
var app=new Vue({
el:"#app",
data:{
id:1001
},
methods:{
getUser(){
//console.log("请求")
axios.get("http://localhost:45599/Users/GetUsers",{
headers: {'token':123123}
})
.then(function(res){
console.log(res.data)
})
}
}
})
</script>
</body>
</html>
点按钮请求用户,断点调试可以进入过滤器,并获取到这次携带的token:123123,认证通过!