WebAPI身份验证
对WebAPI接口的开放当然要做控制,需要身份验证如何做到呢、

进行身份验证后的

服务器拒绝了访问!
第一步添加一个CustomHandler.cs的类
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Web;
5: using System.Threading.Tasks;
6: using System.Net.Http;
7: using System.Text;
8: using System.Net;
9:
10: namespace MvcApplication1.Handler
11: {
12: public class customHandler : DelegatingHandler
13: {
14: protected override System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
15: {
16: int matchHeaderCount = request.Headers.Count((item) =>
17: {
18: if ("key".Equals(item.Key))
19: {
20: foreach (var str in item.Value)
21: {
22: if ("11234".Equals(str))
23: {
24: return true;
25: }
26: }
27: }
28: return false;
29: });
30: if (matchHeaderCount > 0)
31: {
32: return base.SendAsync(request, cancellationToken);
33: }
34: return Task.Factory.StartNew<HttpResponseMessage>(() => { return new HttpResponseMessage(HttpStatusCode.Forbidden); });
35: }
36: }
37: }
第二步部署一下就ok了
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Web;
5: using System.Web.Http;
6: using System.Web.Mvc;
7: using System.Web.Optimization;
8: using System.Web.Routing;
9: using MvcApplication1.Handler;
10:
11: namespace MvcApplication1
12: {
13: // 注意: 有关启用 IIS6 或 IIS7 经典模式的说明,
14: // 请访问 http://go.microsoft.com/?LinkId=9394801
15:
16: public class WebApiApplication : System.Web.HttpApplication
17: {
18: protected void Application_Start()
19: {
20: AreaRegistration.RegisterAllAreas();
21:
22: WebApiConfig.Register(GlobalConfiguration.Configuration);
23: FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
24: RouteConfig.RegisterRoutes(RouteTable.Routes);
25: BundleConfig.RegisterBundles(BundleTable.Bundles);
26:
GlobalConfiguration.Configuration.MessageHandlers.Add(new customHandler());
27: }
28: }
29: }
添加最后一行就ok了。

客户端访问也只要在
request的Headers添加验证信息就可以了,当然android客户端具体怎么访问还在学习中。
WebAPI身份验证的更多相关文章
- Nginx集群之SSL证书的WebApi身份验证
目录 1 大概思路... 1 2 Nginx集群之SSL证书的WebApi身份验证... 1 3 AuthorizeAttribute类... 2 4 ...
- Nginx集群之基于Redis的WebApi身份验证
目录 1 大概思路... 1 2 Nginx集群之基于Redis的WebApi身份验证... 1 3 Redis数据库... 2 4 Visualbox ...
- SNF快速开发平台MVC-EasyUI3.9之-WebApi身份验证问题解决方案
在我们的整体bs框架当中前端采用的是MVC+WebApi的处理方式.WebApi使用起来确实很方便但也会有新的麻烦事,就是身份验证. 如果没有启用身份认证,那么任何匿名用户只要知道了我们服务的url, ...
- c# WebApi之身份验证:Basic基础认证
为什么需要身份认证 身份认证是为了提高接口访问的安全性,如果没有身份验证,那么任何匿名用户只要知道服务器的url,就可以随意访问服务器,从而访问或者操作数据库,这会是很恐怖的事. 什么是Basic基础 ...
- 关于WEB Service&WCF&WebApi实现身份验证之WebApi篇
之前先后总结并发表了关于WEB Service.WCF身份验证相关文章,如下: 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇. 关于WEB S ...
- ASP.NET WEBAPI 的身份验证和授权
定义 身份验证(Authentication):确定用户是谁. 授权(Authorization):确定用户能做什么,不能做什么. 身份验证 WebApi 假定身份验证发生在宿主程序称中.对于 web ...
- 关于WEB Service&WCF&WebApi实现身份验证之WCF篇(2)
因前段时间工作变动(换了新工作)及工作较忙暂时中断了该系列文章,今天难得有点空闲时间,就继续总结WCF身份验证的其它方法.前面总结了三种方法(详见:关于WEB Service&WCF& ...
- WebApi 登录身份验证
前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个功能复杂的业务应用系统,通过角色授权来控制用户访问,本文通过Form认证,Mvc的Controller基类及Action的权 ...
- 转 Web用户的身份验证及WebApi权限验证流程的设计和实现
前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个功能复杂的业务应用系统,通过角色授权来控制用户访问,本文通过Form认证,Mvc的Controller基类及Action的权 ...
随机推荐
- ffmpeg-20160508-git-bin
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...
- [第三方]AFNetWorking3.0网络框架使用方法
官网地址https://github.com/AFNetworking/AFNetworking #import <AFNetworking.h> - (void)viewDidLoad ...
- codeforces 582A. GCD Table 解题报告
题目链接:http://codeforces.com/problemset/problem/582/A 网上很多题解,就不说了,直接贴代码= = 官方题解: http://codeforces.com ...
- 类型转换辅助工具类TypeCaseHelper
package org.sakaiproject.util; import java.math.BigDecimal; import java.sql.Date; import java.sql.Ti ...
- JAVA中的Calendar得到当前时间的年份、月份、日期
import java.util.Calendar; public class CalendarTest { public static void main(String[] args) ...
- 从API请求数据的方法(主要适用于tp5)
// 从api获取数据,$data是一个数组,默认为空,请求数据的方法可以通用,但是其它说明只适用于tp5 function postData($url,$data=''){ $ch = curl_i ...
- 【编程题目】如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
转自:http://blog.csdn.net/vast_sea/article/details/8167968 看上去似乎任何已知的算法都无法做到,如果谁做到了,那么所有的排序方法:QuickSor ...
- vs win32 & MFC 指针默认位置
一开始win32指针所在的位置是与debug文件夹同级的.即打开打开改程序的第一个文件夹这一级. MFC指针是在第二个debug下头,就是打开第二个project名词的文件夹下头,e.g., &quo ...
- Delphi中的异常处理
转载:http://www.cnblogs.com/doit8791/archive/2012/05/08/2489471.html 以前写Delphi程序一直不注意异常处理,对其异常处理的机制总是一 ...
- Task使用小结
Task是.NET推出数据任务处理的工作类,Task的使用也被越来越多的人讲解,这里仅仅介绍Task的部分使用介绍: 1.Task简单创建 --无返回值 Task.Factory.StartNew(( ...