webapi之权限验证

一.概念:

二.demo:

1.登录时生成token:

  FormsAuthenticationTicket token = new FormsAuthenticationTicket(, account, DateTime.Now,
DateTime.Now.AddHours(), true, account,
FormsAuthentication.FormsCookiePath);
loginRltViewModel.TokenStr = FormsAuthentication.Encrypt(token);

2.global文件中配置:

 GlobalConfiguration.Configure(WebApiConfig.Register);

3.WebApiConfig文件中添加到过滤器中:

  config.Filters.Add(new RequestAuthorizeAttribute());//校验token

4.创建一个类文件用来校验token,此文件必须继承ActionFilterAttribute类:

    public class RequestAuthorizeAttribute : ActionFilterAttribute
{ //重写基类的验证方式,加入我们自定义的Ticket验证 前端 XHR.setRequestHeader('Authorization', 'BasicAuth ' + Ticket);
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext context)
{
base.OnActionExecuting(context);
if (context.ActionDescriptor.ActionName != "CheckLogin")
{
bool checkRlt = false;
var authorization = context.Request.Headers.Authorization;
if ((authorization != null) && (authorization.Parameter != null))
{
checkRlt = CheckToken(authorization.Parameter);
}
if (!checkRlt)
{
context.Response = context.Request.CreateResponse(HttpStatusCode.OK, "Err:9001");
}
}
} public static bool CheckToken(string token)
{
if (HttpRuntime.Cache[token] != null)
{
return true;
}
return false;
}
}

跳过验证的方法:

比如登陆不需要验证,就可以在登陆的操作上增加[AllowAnonymous]特性

前提是需要如下代码

var customAttributes = actionContext.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().OfType<AllowAnonymousAttribute>();
var isAllow = customAttributes.Any(x => x is AllowAnonymousAttribute);
if(isAllow)
{
//跳过
}else
{
//验证
}

webapi之权限验证的更多相关文章

  1. Web用户的身份验证及WebApi权限验证流程的设计和实现

    5. WebApi 服务端代码示例 5.1 控制器基类ApiControllerBase [csharp] view plaincopy   /// /// Controller的基类,用于实现适合业 ...

  2. 转 Web用户的身份验证及WebApi权限验证流程的设计和实现

    前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个功能复杂的业务应用系统,通过角色授权来控制用户访问,本文通过Form认证,Mvc的Controller基类及Action的权 ...

  3. WebAPI接口设计:SwaggerUI文档 / 统一响应格式 / 统一异常处理 / 统一权限验证

    为什么还要写这类文章?因为我看过网上很多讲解的都不够全面,而本文结合实际工作讲解了swaggerui文档,统一响应格式,异常处理,权限验证等常用模块,并提供一套完善的案例源代码,在实际工作中可直接参考 ...

  4. [置顶] Web用户的身份验证及WebApi权限验证流程的设计和实现 (不是Token驗證!!!不是Token驗證!!!都是基於用户身份的票据信息驗證!!!)

     转发 http://blog.csdn.net/besley/article/details/8516894 不是Token驗證!!!不是Token驗證!!!都是基於用户身份的票据信息驗證!!! [ ...

  5. Web用户的身份验证及WebApi权限验证流程的设计和实现 asp.net mvc AllowAnonymous 不起作用, asp.net mvc 匿名访问

    原文地址: https://blog.csdn.net/zjlovety/article/details/17095627 前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个 ...

  6. Web用户的身份验证及WebApi权限验证流程的设计和实现(尾)

    5. WebApi 服务端代码示例 5.1 控制器基类ApiControllerBase [csharp] view plaincopy   /// /// Controller的基类,用于实现适合业 ...

  7. .Net Core3.0 WebApi 项目框架搭建 四:JWT权限验证

    .Net Core3.0 WebApi 项目框架搭建:目录 什么是JWT 根据维基百科定义,JWT(读作 [/dʒɒt/]),即JSON Web Tokens,是一种基于JSON的.用于在网络上声明某 ...

  8. Web用户的身份验证及WebApi权限验证流程的设计和实现(续)

    4.4 权限属性RequireAuthorizationAttribute [csharp] view plaincopy   "font-size:14px;">/// / ...

  9. ABP(现代ASP.NET样板开发框架)系列之18、ABP应用层——权限验证

    点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之18.ABP应用层——权限验证 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目 ...

随机推荐

  1. ffmpeg源码分析五:ffmpeg调用x264编码器的过程分析 (转5)

    原帖地址:http://blog.csdn.net/austinblog/article/details/25127533 该文将以X264编码器为例,解释说明FFMPEG是怎么调用第三方编码器来进行 ...

  2. proxmox 安装ROS 备忘

    虚拟机设置:使用qemu64 CPU和vrtio网卡在家里测试性能最好.

  3. ubuntu 初始设置备忘

    配置静态网络 vim /etc/network/interfaces auto eth0 #iface eth0 inet dhcp iface eth0 inet static address x. ...

  4. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 14—Dimensionality Reduction 降维

    Lecture 14 Dimensionality Reduction 降维 14.1 降维的动机一:数据压缩 Data Compression 现在讨论第二种无监督学习问题:降维. 降维的一个作用是 ...

  5. python's is&==区别

    [python's is&==区别] 通常我们写: if foo is None: pass 这个写法与以下的写法有何区别呢? if foo == None: pass is当比较的是相同的对 ...

  6. 新做的系统,第一次拉maven项目时,鼠标左键+ctrl键不能进方法

    对项目选择属性,跳转至:选择以下步骤

  7. H5(1)

    css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上,又 ...

  8. 为什么要用Android Studio?

    为什么要用Android Studio 本书节选自<Android Studio实用指南> 作者: 毕小朋 目前本书已上传到百度阅读,在百度中搜索[Anroid Studio实用指南]便可 ...

  9. 开发微信小程序入门教程,含破解工具

    2016年09月21日晚 微信发不了微信“小程序”的内测版,一时间整个互联网都炸了锅.个大新闻.论坛都在讨论这个事情. 作为互联网的一猿,我们怎能不紧跟时代的脚步.于是第二天上午也对微信发布的“小程序 ...

  10. SQL Server XML变量转为Json文本

    1 -- create function 2 create function [dbo].[fnXmlToJson] (@XmlData xml) 3 returns nvarchar(max) 4 ...