Web API 授权筛选器
2024-09-02 07:44:21
方式一、全局认证
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API 配置和服务
config.Filters.Add(new ApiAuthorizeAttribute());
}
}
方式二、局部认证
在控制器前加认证特性[ApiAuthorizeAttribute],方法名前加认证特性
[ApiAuthorizeAttribute]
public class ValuesController : ApiController
{
[Authorize]
public void Post([FromBody]string value)
{
}
}
以下为自定义授权筛选器文件
/// <summary>
/// 授权筛选器
/// </summary>
public class ApiAuthorizeAttribute : AuthorizeAttribute
{
protected override bool IsAuthorized(HttpActionContext actionContext)
{
var tokenHeader = from t in actionContext.Request.Headers where t.Key == "token" select t.Value.FirstOrDefault();
if (tokenHeader != null)
{
string token = tokenHeader.FirstOrDefault();
if (!string.IsNullOrEmpty(token))
{
try
{
return true;
}
catch (Exception ex)
{
return false;
}
}
}
return false;
} /// <summary>
/// 处理授权失败的请求
/// </summary>
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK, new
{
code = "3001",
msg = "false",
data = new { }
}, "application/json");
}
}
最新文章
- PHP练习题
- 记一次程序排错与std::getline
- [转] How to debug a ARM Cortex-M hard fault exception
- Java读取文件最后两行
- 通过js获取cookie的实例及简单分析
- linux下如何使用sftp命令【转】
- java 在接口里函数不能重载?
- 重建 windows 图标缓存
- 绑定本地Service并与之通信-----之二
- javascript 文本框中,判断回车键触发事件 兼容IE&;FireFox
- java 启用新线程异步调用
- [Android]图片资源管理学习
- 应用在安卓和ios端APP的证件识别
- Life In Changsha College- 第二次冲刺
- ___Json帮助类
- HTML网页背景图很长要有滚动条滑动
- Django 1.11.7学习,配置MySQL数据库(python3.5)
- git远程删除分支后,本地git branch -a 依然能看到的解决办法
- MySql数据库基础笔记(一)
- FZU软工第六次作业-团队选题报告