ASP.NET WebAPI 11 参数验证】的更多相关文章

在绑定完Action的所有参数后,WebAPI并不会马上执行该方法,而要对参数进行验证,以保证输入的合法性. ModelState 在ApiController中一个ModelState属性用来获取参数验证结果. public abstract class ApiController : IHttpController, IDisposable { public ModelStateDictionary ModelState { get; } } ApiContext的ModelState属性实…
随着web客户端的发展,现在很多公司都有专业的前端开发,做到系统前后端分离.ap.net后端典型的就是采用webapi,但是发现很多时候大家对webapi并不了解,这里我们来说说输入参数的验证.前一段时间我们项目组也开始使用webapi来开发接口,开发之初发现设计了很多输入参数的验证规则(不适用,不好用并且还不能满足需求),然后我们在写业务的方法还的调用参数的验证方法, 所以开发是很郁闷的,bug也很多...,后来才发现 网上已有类似的博客:http://www.cnblogs.com/r01c…
自动化CodeReview系列目录 自动化CodeReview - ASP.NET Core依赖注入 自动化CodeReview - ASP.NET Core请求参数验证 参数验证实现 在做服务端开发时经常需要对客户端传入的参数进行合法性验证,在ASP.NET Core中通常会使用如下方式: public class LoginModel { [Required(ErrorMessage = "账号不能为空")] public string Account { get; set; }…
定义 身份验证(Authentication):确定用户是谁. 授权(Authorization):确定用户能做什么,不能做什么. 身份验证 WebApi 假定身份验证发生在宿主程序称中.对于 web-hosting,宿主是 IIS.这种情况下使用 HTTP Module 进行验证. 验证时,宿主会创建一个表示安全上下文的主体对象(实现 IPrincipal),将它附加到当前线程.主体对象包含一个存储用户信息的 Identity 对象.若验证成功,Identity.IsAuthenticated…
记录笔记,在博客园中有很多实现Token的方法,这是我看过他们学到的,然后找到适合自己的解决方案,自己无聊总结一下学习经验写下的 WebApi后端接口实现Token验证 Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生.Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个T…
/// <summary> /// 验证 /// </summary> /// Account API账号 /// TimeStamp 请求时间 /// Sign 所有请求参数 加密 public class AuthFilterOutside : AuthorizeAttribute { //重写基类的验证方式,加入我们自定义的Ticket验证 public override void OnAuthorization(HttpActionContext actionContext…
ParameterBindingAttribute 在上一篇中重点讲了ModelBinderAttribute的使用场景.这一篇详细的讲一下ModelBinder背后的参数绑定原理. ModelBinderAttribute继承自ParameterBindingAttribute,从命名上就是可以看出ParameterBindingAttribute是对Action参数进行绑定的一种特性.除了ModelBinderAttribute之外,WebAPI还另外定义了ValueProviderAttr…
处理了很多天,终于使用Nodejs可以发出请求至WebAPI,能够正常处理数据了 首先加入npm包 npm install httpntlm 在app.js中加入代码 var httpntlm = require('httpntlm'); var fs = require('fs'); var options = { url: 'http://get001.mygroup.com/InstantNoodle_SIT/Workbench/api/v1/styleproduct/1/1', user…
一.Forms认证 1.在webapi项目中启用Forms认证 Why:为什么要在WebAPI中使用Forms认证?因为其它项目使用的是Forms认证. What:什么是Forms认证?它在WebAPI中就是一个MessageHandle,具体请查找关键字“ASP.NET Forms” How:如何启动Forms认证? 最简单的是通过配置启动Forms认证: <system.web> <authentication mode="Forms"> <forms…
首先,请允许我说一句:shit! 因为这个问题不难,但是网上有关 ASP.NET WEBAPI的资料太少.都是PHP等等的. 我也是在看了某位大神的博客后有启发,一点点研究出来的. 来看正题! 1.微信公众平台的接入方法,无非4个参数(signature, timestamp, nonce, echostr)加1个Token(两边对应) 2.Token, timestamp, nonce字典排序后,按照字符串“SHA1”加密.得出一串字符串 tmpStr(转化为小写) 3.然后比对 tmpStr…
默认绑定方式 WebAPI把参数分成了简单类型和复杂类型: 简单类型主要包括CLR的primitive types,(int.double.bool等),系统内置的几个strcut类型(TimeSpan.Guid等)以及string.对于简单类型的参数,默认从URI中获取. 复杂类型的数据也可以直接作为参数传入进来,系统使用media-type formatter进行解析后传给服务函数.对于复杂类型,默认从正文中获取, 例如,对于如下函数 HttpResponseMessage Put(int…
在Asp.Net WebApi 项目中使用OWIN模块之后,如果没有在OWIN的Startup类中配置认证方式,调用WebApi的相关Controller和Action就会出现如下异常: 出现错误. 没有 OWIN 身份验证管理器与此请求相关联. ExceptionType:System.InvalidOperationException StackTrace:   在 System.Web.Http.Owin.PassiveAuthenticationMessageHandler.Suppre…
Ø  前言 目前 C# 比较流行使用 ASP.NET Web API 来承载 Web 接口,提供与客户端之间的数据交互,现在的版本已经是 2.0 了.既然是接口就少不了对输入参数的验证,所以本文主要探讨下,Web API 中实现接口参数验证的几种方式: 1.   使用 Web API 过滤器验证. 2.   继承验证基类,重写验证方法. 1.   使用 Web API 过滤器验证(Demo 演示) 1)   定义个 DataRecordValidationAttribute 类,:默认:1:成交…
一.前言 半年前左右折腾了一个前后端分离的架子,这几天才想起来翻出来分享给大家.关于前后端分离这个话题大家也谈了很久了,希望我这个实践能对大家有点点帮助,演示和源码都贴在后面. 二.技术架构 这两年angularjs和reactjs算是比较火的项目了,而我选择angularjs并不是因为它火,而是因它的模块化.双向数据绑定.注入.指令等都是非常适合架构较复杂的前端应用,而且文档是相当的全,碰到问题基本上可以在网上都找到答案.所以前端基本思路就以angularjs为主.代码模块化,通过requir…
享一个前后端分离方案源码-前端angularjs+requirejs+dhtmlx 后端asp.net webapi   一.前言 半年前左右折腾了一个前后端分离的架子,这几天才想起来翻出来分享给大家.关于前后端分离这个话题大家也谈了很久了,希望我这个实践能对大家有点点帮助,演示和源码都贴在后面. 二.技术架构 这两年angularjs和reactjs算是比较火的项目了,而我选择angularjs并不是因为它火,而是因它的模块化.双向数据绑定.注入.指令等都是非常适合架构较复杂的前端应用,而且文…
在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑,还让我含着泪去填.改BUG前看队友写的代码,这里就不评价了,反正是边改边骂,我的嘴巴就没停过,作为开发者,我那时的心情,就不再描述了,反正是找不到一个好词形容. 新年展望,我感觉我是没啥好展望的,反正去年的展望是一个都没实现,事情该怎么做还是怎么做的,估计大多数人跟我差不多,任何事不能强求,事前努力…
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据.每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的 2 小时内)内访问特定的资源(例如仅仅是某一相册中的视频).这样,OAuth 让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容. 以…
生活需要自己慢慢去体验和思考,对于知识也是如此.匆匆忙忙的生活,让人不知道自己一天到晚都在干些什么,似乎每天都在忙,但又好似不知道自己到底在忙些什么.不过也无所谓,只要我们知道最后想要什么就行.不管怎么样,我们还是得学习,让自己不断的向前,这样才可以渐渐看到自己的追求,发发感叹,谁让楼主以前是写小说的呢(想看楼主以前的小说可以私聊我,以前绝对货真价实的文艺青年,可惜现在已经是屌丝了.) 不扯淡,还是来聊正经事,什么正经事勒?对于程序员来说,当然代码才是正经事了. 在我们的项目开发中,很多时候需要…
ASP.NET WebAPI 08 Message,HttpConfiguration,DependencyResolver   Message WebAPI作为通信架构必定包含包含请求与响应两个方法上的报文,在WebAPI它们分别是HttpRequestMessage,HttpResponseMessage.对于HttpResponseMessage之前在WebAPI返回结果中有应用. HttpRequestMessage 请求报文包含请求地址(RequestUri),请求方法(Method)…
前面在ASP.NET WEBAPI中集成了Client Credentials Grant与Resource Owner Password Credentials Grant两种OAUTH2模式,今天在调试Client Credentials Grant想到如下几点 建议TryGetBasicCredentials认证 validate client credentials should be stored securely (salted, hashed, iterated),参考PDF设计…
对于.NET的分布式应用开发,可以供我们选择的技术和框架比较多,例如webservice,.net remoting,MSMQ,WCF等等技术.对于这些技术很多人都不会陌生,即时没有深入的了解,但是肯定听说过,每种技术都各有优势和适用范围,没有绝对的好坏,只有相对的合适程度.不过可惜了,今天我们讲解的主题不是这几种技术,今天主要讲解的是ASP.NET WebAPI. 对于ASP.NET WebAPI的优势和特点,在这里就不讲了,需要用到的自然就会选择,也不需要我浪费篇幅去讲解这些,这篇博文主要讲…
对于.NET的分布式应用开发,可以供我们选择的技术和框架比较多,例如webservice,.net remoting,MSMQ,WCF等等技术.对于这些技术很多人都不会陌生,即时没有深入的了解,但是肯定听说过,每种技术都各有优势和适用范围,没有绝对的好坏,只有相对的合适程度.不过可惜了,今天我们讲解的主题不是这几种技术,今天主要讲解的是ASP.NET WebAPI. 对于ASP.NET WebAPI的优势和特点,在这里就不讲了,需要用到的自然就会选择,也不需要我浪费篇幅去讲解这些,这篇博文主要讲…
在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑,还让我含着泪去填.改BUG前看队友写的代码,这里就不评价了,反正是边改边骂,我的嘴巴就没停过,作为开发者,我那时的心情,就不再描述了,反正是找不到一个好词形容. 新年展望,我感觉我是没啥好展望的,反正去年的展望是一个都没实现,事情该怎么做还是怎么做的,估计大多数人跟我差不多,任何事不能强求,事前努力…
一.课程介绍 明人不说暗话,跟着阿笨一起玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将是我们需要思考的问题.为了保护我们的WebApi数据接口不被他人非法调用,我们采用身份认证机制,常用的身份认证方式用Https基本认证(结合SSL证书),在ASP.NET WebService服务中可以通过SoapHead验证机制来实现,那么在ASP.NET WebApi中我们应该如何保证我们的接口安全呢?在上此分享课程中阿笨给大家带来了<ASP.…
一.前言 明人不说暗话,跟着阿笨一起玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将会是需要思考的问题.在ASP.NET WebService服务中可以通过SoapHead验证机制来实现,那么在ASP.NET WebApi中我们应该如何保证我们的接口安全呢?在上此分享课程中阿笨给大家带来了传统的基于Session方式的Token签名验证,那么本次分享课程阿笨给大家带来另外一种基于JWT方式解决方案.如果您对本次分享课程<ASP.NET…
一.课程介绍 明人不说暗话,跟着阿笨一起学玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将会是需要思考的问题.在ASP.NETWebService服务中可以通过SoapHead验证机制来实现,那么在ASP.NET WebApi中我们应该如何保证我们的接口安全呢?如果您对本次分享课程<ASP.NET WebApi 基于分布式Session方式实现Token签名认证>感兴趣的话,那么请跟踪阿笨一起学习吧. 1.1.本次分享课程包含知识点…
一.课程介绍 HTTPS是互联网 Web 大势所趋,各大网站都已陆续部署了 HTTPS .  全站HTTPS时代,加密用户与网站间的交互访问,在客户端浏览器和Web服务器之间建立安全加密通道,一般情况下,由于HTTP协议的安全性,传递的参数容易被拦截,从而可能导致潜在的危险,所以一般WebAPI接口层都采用了HTTPS协议的,也就是采用SSL层来对数据进行安全性的加密的. 国内外的大型互联网公司很多也都已经启用了全站 HTTPS,这也是未来互联网发展的趋势.为鼓励全球网站的 HTTPS 实现,一…
Asp.Net WebApi+JQuery Ajax的Post请求整理 一.总结 1.WebApi 默认支持Post提交处理,返回的结果为json对象,前台不需要手动反序列化处理.2.WebApi 接收Post提交参数需要指定([FromBody] string name)3.WebApi 中如果只接收一个基础类型参数,不能指定key的名称4.WebApi Post请求Action只能接收一个参数,也就是说一个Action中[FromBody]仅可指定一次5.WebApi Post请求处理多个参…
Asp.Net WebApi+JQuery Ajax的Get请求整理 一.总结 1.Asp.Net WebApi默认不支持Get请求,需要在Action方法上指定[HttpGet], 除非Action方法以‘Get’开头. 2.默认路由中,没有指定action,如果想路由到action不要手动指定3.WebApi返回值的json对象,使用$.get 接收返回值,不需要手动反序列化处理4.WebApi的Get请求中,Action可以接收多个参数 二.代码验证说明 1.默认不支持Get请求,需要在A…
最近在学习用asp.net webapi搭建小程序的后台服务,因为基于小程序端和后台二者的通信,不像OAuth(开放授权),存在第三方应用.所以这个token是双向的,一个是对用户的,一个是对接口的.本来做了一份是用Oauth的,用的是第三种密码策略模式.但是因为不存在第三方应用,所以不用Oauth这种授权标准. 这个Sample是用简单三层做的,书上得来终觉浅,绝知此事要躬行,实践一次就知道wepapi与前端如何通过token认证进行逻辑交互. 搭建项目 搭建项目这一点不多说,直接新建一个空的…