一、摘要 本期同样带给大家分享的是阿笨在实际工作中遇到的真实业务场景,请跟随阿笨的视角去如何实现采用微软的ASP.NET OWIN技术承载WebAPI服务,如果您对本期的教程内容感兴趣,那么请允许让阿笨带着大家一起学习吧...4.4、实现WEB应用程序的Self-Host解决方案 通过HttpListener实现简单的Http服务(.NET 2.0+) 基于WCF堆栈的自宿主SelfHosting 采用ASP.NET...HttpSelfHost来承载WebAPI服务 (.NET 4.0+) 采用ASP.NET OWIN来承载WebAPI服务(.NET4.5微软推荐使用) 等等.........五、涉及覆盖的知识点 ASP.NET WebAPI HttpSelfHost/OWIN 如何以桌面应用程序方式,宿主承载WebApi服务; ASP.NET WebAPI HttpSelfHost/OWIN...如何让服务端支持CROS跨越访问; IE10.0 以下浏览器通过XDomainRequest实现CORS访问;
概念:CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。...WebApi开启CORS设置分为2步: Step1:打开NuGet安装Microsoft.AspNet.Cors 如图: ?...Step2:WebApiConfig.cs设置开启Cors,代码如下: //跨域配置 config.EnableCors(new System.Web.Http.Cors.EnableCorsAttribute
; using System.Threading.Tasks; using Microsoft.Owin; using Owin; using System.Web.Http; [assembly:...OwinStartup(typeof(OWIN_Test.MyStartup))] namespace OWIN_Test { public class MyStartup {...Self-Host 我们打开NuGet控制台..输入命令:Install-Package Microsoft.AspNet.WebApi.OwinSelfHost 等待下载和安装完毕即可..效果如下...: 下面我们编写一个WebAPI的控制器,代码如下(代码很简单,我就不解释了): using System; using System.Collections.Generic; using System.Linq...写在最后 在Web项目中直接创建webapi的项目其实可以很快的达到效果,..个人不是很喜欢自带的Webapi模版感觉很蛋疼加了很多用不着的东西,采用OWIN当宿主可以将项目架设在服务,控制台等,当然~
OWIN是什么? OWIN的英文全称是Open Web Interface for .NET。 如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口。...然后通过Nuget来安装 Microsoft.AspNet.WebApi.OwinSelfHost ?...我们也可以打开NuGet控制台..输入命令:Install-Package Microsoft.AspNet.WebApi.OwinSelfHost 然后我们再添加一个OWIN启动类名为Startup...RouteParameter.Optional } ); appBuilder.UseWebApi(config); } } } 下面我们编写一个WebAPI...跨平台 通过OWIN宿主ASP.NET WebAPI还可以完美的兼容Mono 3 及以上版本。 下面我们就来看看一下运行在linux下。首先大家要安装好 mono。
跨源资源共享(CORS)是一种安全概念,用于限制Web浏览器中实现的资源。它可以防止JavaScript代码产生或消耗针对不同来源的请求。...处理此问题需要两个要求 - 1.RESTful Web服务应该支持跨源资源共享。2.RESTful Web服务应用程序应允许从8080端口访问API。...在控制器方法中启用CORS 需要通过对控制器方法使用@CrossOrigin注解来设置RESTful Web服务的起源。@CrossOrigin注源支持特定的REST API,而不支持整个应用程序。...全局CORS配置 需要定义显示的@Bean配置,以便为Spring Boot应用程序全局设置CORS配置支持。.../products").allowedOrigins("http://localhost:9000"); } }; } 下面给出了在主Spring Boot应用程序中全局设置CORS
四、选择合适的OAuth模式打造自己的webApi认证服务 场景:你自己实现了一套webApi,想供自己的客户端调用,又想做认证。...五、使用owin来实现密码模式 owin集成了OAuth2.0的实现,所以在webapi中使用owin来打造authorization无疑是最简单最方便的方案。...新建webApi项目 安装Nuget package: Microsoft.AspNet.WebApi.Owin Microsoft.Owin.Host.SystemWeb 增加owin的入口类:Startup.cs...在webApi中使用owin来实现OAuth2.0是最简单的解决方案,另外一个方案是使用DotNetOpenOauth,这个方案的实现稍显复杂,可用的文档也较少,源码中带有几个例子我也没有直接跑起来,最后无奈之下几乎读完了整个源码才理解...下一篇将实现此功能,另外还要给我们的服务端加上CORS(同源策略)支持。
CORS 支持这种安排。...否则,响应仅包含指示 CORS 不允许请求的标头。启用 REST 服务以支持 CORS 的概述默认情况下,REST 服务不允许 CORS 标头。但是,可以启用 CORS 支持。...在 REST 服务中启用对 CORS 的支持有两个部分:启用 REST 服务以接受部分或所有 HTTP 请求的 CORS 标头。。编写代码,使 REST 服务检查 CORS 请求并决定是否继续。...空字符串):Parameter HandleCorsRequest = "";如果将 HandleCorsRequest 参数指定为“”,请编辑规范类中的 OpenAPI XData 块以指示哪些调用支持...重要提示:IRIS REST 服务支持 OPTIONS 请求(CORS 预检请求),该请求用于确定 REST 服务是否支持 CORS。此请求始终未经身份验证发送,并由 CSPSystem 用户执行。
然后向项目中添加 Microsoft.AspNet.WebApi.Owin 包, 相关依赖的包会自动添加, ?...Microsoft.AspNet.WebApi.Client Microsoft.AspNet.WebApi.Core Microsoft.AspNet.WebApi.Owin Microsoft.Owin...使用 Katana 服务器运行 在 Katana 下运行 OWIN 应用是很容易的, 新建一个命令行程序项目, 项目名称为: Owin02_WebApi_Katana , 然后向项目中添加下面的 NuGet...包: Microsoft.AspNet.WebApi.Client Microsoft.AspNet.WebApi.Core Microsoft.AspNet.WebApi.Owin Microsoft.AspNet.WebApi.OwinSelfHost...新建一个 C# 命令行程序, 项目名称为 Owin02_WebApi_Nowin , 添加下面的 NuGet 包: Microsoft.Owin Nowin Owin 向 Program.cs 文件中的
在上一篇”使用OAuth打造webapi认证服务供自己的客户端使用“的文章中我们实现了一个采用了OAuth流程3-密码模式(resource owner password credentials)的WebApi...angular客户端 angular版本的客户端代码来自于http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity...apiServiceBaseUri: 'http://localhost:56646/', clientId: 'ngAuthApp' }); 地址:http://localhost:56646/就是我们自己的webApi...由于同源策略的原因,我们需要在WebApi服务端启用cors,打开Startup类配置cors: ?
Cross-Origin Resource Sharing (CORS) 是W3C草案拟定的浏览器与服务端如何进行跨域请求的方式,其原理是用自定义HTTP头来让浏览器和SERVER决定request、response...目前几乎所有浏览器都已经支持了(Internet Explorer 8+, Firefox 3.5+, Safari 4+, and Chrome)。...之前提到的所有浏览器都支持这种简单的请求方式。...ASP.NET Web API 支持 CORS 支持的代码参见 http://code.msdn.microsoft.com/Implementing-CORS-support-418970ee,也可以通过...api中动态修改action的名字 ASP.NET Web API: CORS支持和基于属性的路由改进 Using Cross Origin Resource Sharing (CORS) in ASP.NET
当然了,在WebAPI的实际设计中,接口的URL格式和http报文中Body的参数值会需要进一步的思考。...准确来说,SignalR整合了WebSocket,在浏览器支持H5的情况下就使用WebSocket,若不支持,就通过长轮训的方式,算是一种兼容性的整体解决方案。...简单来说,记住一点就好,SignalR支持双向通信的长连接,其是对http请求-响应模式的有力补充。...就我个人而言,由于公司的组件库支持Unity,那么就不用选了,哈哈。...快速入门系列--WebAPI--01基础 快速入门系列--WebAPI--02进阶 快速入门系列--WebAPI--03框架你值得拥有 快速入门系列--WebAPI--04在老版本MVC4下的调整 参考资料
OWIN将网页应用程序从网页服务器分离出来,然后将应用程序托管于OWIN的程序而离开IIS之外,关于OWIN的详细资料可参考博客 MVC5 - ASP.NET Identity登录原理 - Claims-based...认证和OWIN。...使用OWIN 自宿主 ASP.NET WebAPI 2可以参考以下2篇文章: Use OWIN to Self-Host ASP.NET Web API 2 Asp.Net Web API 2第十课—...—使用OWIN自承载Web API 我们看下配置代码: using Owin; using System; using System.Collections.Generic; using System.Linq...另外说明下,通过OWIN宿主ASP.NET WebAPI还可以完美的兼容Mono 3哦。
很多知名网站都采用支持OAuth2认证, 允许第三方应用接入, 客户端接入 OAuth2 服务器这方面的资料已经很多了, 但是关于怎么搭建自己的 OAuth 服务器这方面的资料则比较少, 接下来就介绍一下怎么用微软的...配置 OWIN OAuth 中间件 添加一个 OWIN Startup Class , 名称为 Startup.cs , 如下所示: using Microsoft.Owin; using Owin;...创建受保护资源服务 作为例子, 本文创建一个简单的 WebAPI 项目,向通过 OAuth 授权认证的第三方应用返回用户信息。...Microsoft.Owin.Security.OAuth Microsoft.AspNet.WebApi.Owin Microsoft.AspNet.WebApi.Core Microsoft.AspNet.WebApi.Client...在 Startup.cs 的 Configuration 方法中添加下面的代码, 启用 Bearer 验证和 WebAPI : public void Configuration(IAppBuilder
Owin介绍看上篇 链接 OWIN将多种应用框架使用统一的接口来实现各框架之间的适配! 新建控制台项目 ? image.png ?...添加Nuget包 安装OWIN自宿主的包包 1、通过程序包管理器控制台 Install-Package Microsoft.AspNet.WebApi.OwinSelfHost 2、通过Nuget...新建Startup类 /// /// OWIN应用程序入口 /// public partial class Startup...LinkID=316888 } } 添加几个测试用的Controller 其实就是webapi或者webmvc里的controller,这里以webapi为例说明 public...string baseAddress = "http://192.168.2.71:9000/"; Microsoft.Owin.Hosting.WebApp.Start<Startup
这个是webapi里面的某个控制器,里面定义了很多方法,和http请求有一一对应的嫌疑 ?...用nuget添加web api owin self host包(对比传统项目引用,nuget的好处==》你依赖啥,我就帮你引入啥,不要你操心) ?...新增一个Owin的Startup类,类似于我们传统项目的Global文件 ? 配置一下webapi,可以参考传统webapi里面的"路由" ? 添加一个控制器的文件夹,并添加一个类 ?...在main方面里面启动owin host ?...下面看owin牛逼之处,我们把刚才生成的文件直接打开 ? 用工具再次模拟请求一下 ? 擦~网站就这么不需要部署了?
跨域请求是目前前端框架式发展中必须解决的问题,目前主流的浏览器均支持cors跨域请求,浏览器无需做过多的处理,在服务器端只需要设置Access-Control-Allow-Origin为*或者是或者是发起这个请求的页面的域名即可...但是IE浏览器只有在IE10及以上版本才支持。 在IE9和IE8浏览器中,I引入了 XDomainRequest 对象。...2.只能使用 HTTP 的 GET 方法和 POST 方法访问目标 URL 向服务器发送的请求只支持get和post两种方式。但是也基本上能满足我们的基本使用。...4.只支持 text/plain 作为请求报头Content-Type的取值 为了应对这个问题,当服务器接收到来自XDomainRequest对象的请求的时候,当前处理HTML表单的服务器代码必须重写,...这使得添加XDomainRequest对象的支持功能变得比原先困难得多。
二、CorsRequestContext 针对CORS的支持其实并不限于仅被使用在ASP.NET Web API上,用于根据提供的资源授权策略对跨域资源请求进行授权检验得引擎定义在程序集System.Web.Cors.dll...CORS引擎的扩展。...系列文章 [1] 同源策略与JSONP [2] 利用扩展让ASP.NET Web API支持JSONP [3] W3C的CORS规范 [4] 利用扩展让ASP.NET Web API支持CORS...[5] ASP.NET Web API自身对CORS的支持: 从实例开始 [6] ASP.NET Web API自身对CORS的支持: CORS授权策略的定义和提供 [7] ASP.NET Web...API自身对CORS的支持: CORS授权检验的实施 [8] ASP.NET Web API自身对CORS的支持: CorsMessageHandler
OWIN 初探 什么是 OWIN ?...支持 OWIN 的服务器有 Katana 和 Nowin 。...支持 OWIN 的 Web 框架有: Nancy SignalR WebApi FubuMVC Simple.Web DuoVia.Http Web 应用 (Web Application) 一个特定的...怎么使用 OWIN OWIN 通过 NuGet 包的形式发布, 获取和使用都非常方便。...向项目中添加如下几个 NuGet 包: Owin Microsoft.Owin Microsoft.Owin.Hosting Microsoft.Owin.Host.HttpListener 添加一个
Microsoft.Owin.Cors – 这个包里包含了一些能够在OWIN中间件中进行跨域资源共享(CORS)的组件。...Microsoft.Owin.Security.Google – 包含了一组支持Google的OpenId及OAuth 2.0认证工作流的中间件。...Microsoft.Owin.Security.MicrosoftAccount – 一组允许应用程序支持微软帐号认证工作流的中间件。...Microsoft.Owin.Security.OAuth – 允许应用程序支持任何标准OAuth 2.0认证工作流的中间件。...Microsoft.Owin.Security.Twitter – 允许应用程序支持Twitter的OAuth 2.0认证工作流的中间件。
WebApiThrottle是一个专门为webApi限制请求频率而设计的,支持寄宿OWIN上的中间件的限制过滤。...服务端接口可以基于客户端请求IP地址、客户端请求key、及请求路由去限制webapi接口的访问频率。...如果你想改变请求数据存储的策略,框架是支持redis、nosql、数据库存储的,这种情况下必须创建自己的存储引擎,可以通过实现IThrottleRepository接口完成。...在启动时注册ThrottlingHandler对象,并在构造函数中传入PolicyCacheRepository ,如果你是通过Owin自寄宿的webapi,需要使用PolicyMemoryCacheRepository...使用ThrottlingMiddleware 你可以在webapi作用域范围外配置限制策略,跟使用OAuth中间件或SignalR端点类似。