方式一、全局认证

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");
}
}

最新文章

  1. PHP练习题
  2. 记一次程序排错与std::getline
  3. [转] How to debug a ARM Cortex-M hard fault exception
  4. Java读取文件最后两行
  5. 通过js获取cookie的实例及简单分析
  6. linux下如何使用sftp命令【转】
  7. java 在接口里函数不能重载?
  8. 重建 windows 图标缓存
  9. 绑定本地Service并与之通信-----之二
  10. javascript 文本框中,判断回车键触发事件 兼容IE&amp;FireFox
  11. java 启用新线程异步调用
  12. [Android]图片资源管理学习
  13. 应用在安卓和ios端APP的证件识别
  14. Life In Changsha College- 第二次冲刺
  15. ___Json帮助类
  16. HTML网页背景图很长要有滚动条滑动
  17. Django 1.11.7学习,配置MySQL数据库(python3.5)
  18. git远程删除分支后,本地git branch -a 依然能看到的解决办法
  19. MySql数据库基础笔记(一)
  20. FZU软工第六次作业-团队选题报告

热门文章

  1. Game Engine Architecture 12
  2. Bootstrap 提示工具(Tooltip)插件
  3. 嵌入式linux开发uboot启动内核的机制(二)
  4. 201671010449 杨天超 实验十四 团队项目评审&amp;课程学习总结
  5. 08-numpy-笔记-sum
  6. 学习-guava
  7. 操作excel文件爬取nvd.nist数据
  8. web服务本质
  9. docker 挂载主机目录 -v 和 --mount区别
  10. 大数据(1)---大数据及HDFS简述