OWIN 初探 什么是 OWIN ?...OWIN 是一个开源开放的标准, 有助于建设 .NET 开发的开源生态环境, OWIN 定义了如下几个概念: 服务器 (Server) HTTP 服务器直接与客户端交互, 并用 OWIN 语义处理请求..., 标准的 OWIN 应用可以在任何 OWIN 兼容的服务器上运行, 不再依赖与 Windows 和 IIS 。...怎么使用 OWIN OWIN 通过 NuGet 包的形式发布, 获取和使用都非常方便。...向项目中添加如下几个 NuGet 包: Owin Microsoft.Owin Microsoft.Owin.Hosting Microsoft.Owin.Host.HttpListener 添加一个
什么是OWIN? OWIN的英文全称是Open Web Interface for .NET。 如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口。...【进一步的理解】 OWIN是对ASP.NET Runtime的抽象。 ASP.NET 5.0是OWIN的一种实现 通过下面几张图可以更直观地理解: ? ? ? ?...我对Owin理解 OWIN是一个规范和标准,旨在阐述web服务器和web应用应该如何去解耦,它使得原本不太可能迁移到其他环境的ASP.NET应用变得可能。...要明白的是OWIN本身是一个规范,它没有什么dll啊exe之类的,我理解它就是一份文档而已。...基于Owin的延伸 Katana源于微软,是微软为了实现OWIN的规范而作的产品,它就是实实在在的程序集了,我们可以使用它了。
在新的库发布之前,我们还是需要了解很多东西的,比如今天要说的OWIN和Katana OWIN 我们首先来说说OWIN,很多人并不了解这是什么,先解释一下字面的意思: OWIN(Open Web Interface...标准的OWIN解决方案的架构图如下: ? 这样大家可能看不懂 - -,拿已经发布了并且实现OWIN的SignalR来说举例子吧..如下图: ?...那么katana是什么呢..接下来我们来看看katana Katana 上面我们说了,OWIN是一组规范,并没有具体的实现,那么这个katana就是微软对OWIN规则的一组实现了....他包含了兼容ASP.NET的Microsoft.Owin.Host.System.Web还有自托管的环境(控制台,服务)的Microsoft.Owin.Host.HttpListenter 监听 还有很多的中间件模块主要有...: Microsoft.Owin.Compression(压缩模块) Microsoft.Owin.Cors(跨源资源共享模块) Microsoft.Owin.Security.
一个窗口函数在一系列与当前行有某种关联的表行上执行一种计算。这与一个聚集函数所完成的计算有可比之处。但是窗口函数并不会使多行被聚集成一个单独的输出行,这与通常的...
- -, OWIN呃,这里我就不解释了,自己也是一知半解,可以参考 Open Web Interface for .NET 我们开始吧... 首先看看结果.....正文开始 首先我们创建一个空的Web项目: 创建完成后,里面是什么都没有的,然后我们添加一个OWIN启动类如下: 在我们的Start UP中编写代码如下(解释我就写在注释里了..): using System...; 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 {...", defaults: new { id = RouteParameter.Optional } ); //将配置注入OWIN
OWIN 请求处理与中间件 OWIN 请求处理函数 在 OWIN 的最底层, 处理请求的函数定义的委托签名如下: Func, Task> 这个函数接受类型为...IDictionary 的 OWIN 环境, 返回一个 Task 对象。...通常可以为这个函数起这样的别名: using AppFunc = Func< IDictionary, // OWIN 环境 Task>; // 任务 于是...,请求处理函数可以这样表示: Func OWIN 中间件 (Middleware) 中间件是 OWIN 中很重要的概念, 中间件介于 OWIN 服务器 与 OWIN 应用之间...OWIN 为 Middleware 的注册提供了三个版本的重载函数, 可以分别适用于不同的场景: public interface IAppBuilder { IAppBuilder Use(object
分享 OWIN 静态文件处理中间件 分享一个自己写的 OWIN 静态文件处理中间件, 功能如下: 支持标准的 OWIN 环境, 跨平台运行 (.Net, Mono) 为 OWIN 环境开发, 只依赖...Owin.dll , 和具体的 OWIN 宿主无关, 可以在 .Net 和 Mono 环境下运行; 支持实体标签 (HTTP ETag) 实体标签 是HTTP协议提供的若干机制中的一种Web缓存验证机制...true, EnableHtml5LocationMode = true }); 获取方式当然是通过 NuGet 了, 输入下面的命令就可以了: Install-Package Beginor.Owin.StaticFile...NuGet 包的地址是 https://www.nuget.org/packages/Beginor.Owin.StaticFile 示例程序源码: https://github.com/beginor
吐槽 Micorsoft.Owin 的设计 在 OWIN 的设计当中, 一切都是松散耦合的, 基于职责链的中间件处理模式给开发者提供了很大的自由, 基于 OWIN 的应用甚至可以脱离 Windows/IIS...Microsoft.Owin 中奇葩的设计 不过今天要吐槽的是 Microsoft.Owin 的设计, 在传统的 System.Web 命名空间下, 有一个很庞大的 HttpContext 对象, 让开发者又爱又恨...} T Get(string key); IOwinContext Set(string key, T value); } 这个接口简直是 HttpContext 的 OWIN...IAuthenticationManager 只能通过 IOwinContext 实例属性获取, 就必须得先得到 IOwinContext 实例, 而 IOwinContext 的实例只有在 OWIN...本文参考: Registering OWIN IAuthenticationManager using Castle Windsor
OWIN是什么? OWIN的英文全称是Open Web Interface for .NET。 如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口。...是Web应用程序与Web服务器之间的接口,OWIN就是.NET Web应用程序与Web服务器之间的接口。 为什么需要这样一个接口呢?...【进一步的理解】 OWIN是对ASP.NET Runtime的抽象。 ASP.NET 5.0是OWIN的一种实现。 通过下面几张图可以更直观地理解: ? ?...OWIN Self-Host ASP.NET Web API 2 首先我们创建一个空的控制台项目: ?...将OWIN 启动绑定改为绑定所有地址,然后编译。
接下来我对我在移植过程中发现的一些问题进行了总结,今天主要说说Owin。...说到Owin就不能不提Katana项目和宇内大神的Tinyfox了,当然关于这两块内容这篇文章就不多涉及了,博友可以自己在博客园内搜索关于Owin的文章还是挺多的。 ...Owin ASP.NET vNext刚推出的时候,号称是Owin的一个实现,在 http://owin.org 上,直到现在还保留着这样一段描述。...好吧,只能看看MS是怎么支持Owin的,在HttpAbstractions项目里发现了Microsoft.AspNetCore.Owin这样一个子项目,看完只是想说:“你这意思这叫向下兼容?”...现在只要在Asp.net core项目里加入依赖Microsoft.AspNet.Owin就可以IApplicationBuilder接口的扩展方法UseOwin进行Owin中间件的调用。
什么是OWIN OWIN是Open Web Server Interface for .NET的首字母缩写,他的定义如下: OWIN在.NET Web Servers与Web Application之间定义了一套标准接口...历时两年(2010-2012),OWIN的规范终于完成并且当前版本是1.0,在OWIN的官网上可以看到更具体的信息。...OWIN的规范 现在我们已经了解了什么是OWIN已经为什么需要OWIN,现在是时候来分析一下OWIN的规范了。...小结 这些规范看起来可能简单到微不足道,但OWIN的思想就是简单、灵活——通过要求OWIN中间件只依赖AppFun类型,为开发基于OWIN的中间件提供了的最低门槛。...既然OWIN是规范,而非真正实现,所以是无法使用在项目中的,若要使用OWIN,必须要实现他,所以这也是接下来我想聊的,OWIN的实现:Katana 。
具体的操作步骤如下,首先你去TinyFox的官网中下载最新版的TinyFox通用平台版本并解压,然后新建一个OWIN的项目,并配置好Startup。...1 using Microsoft.Owin; 2 using Owin; 3 4 [assembly: OwinStartup(typeof(WebApplication2.Startup))...1 using Microsoft.Owin.Builder; 2 using System; 3 using System.Collections.Generic; 4 using System.Threading.Tasks
TinyFox 是一款支持OWIN标准的WEB应用的高性能的HTTP服务器,是Jexus Web Server的"姊妹篇"。...你的应用需要基于OWIN开发或者在具有OWIN接口的应用层框架上开发(比如NancyFx),在此基本上,新建一个类(可称为"适配器""接口"),这个类中,必须有一个叫"OwinMain"的方法(具体格式参见...惊鸿哥写了一篇文章"OwinHost再添新成员:TinyFox",文章详细介绍了如何部署用了OWIN模式的NancyFX的应用。...Tools目录下Jws.Owin-Adapters.zip中有三个"应用"示例,base.demo是最能体现OWIN原始定义,msowin.demo是在插件中加载microsoft.owin.dll进入...ms处理OWIN的流程,nancy.demo是在ms owin处理流程(管道)中加载NancyFx,运行NancyFx应用层框架。
新建空的 Web 项目 这一步很容易, 只要用 Visual Studio 新建一个空的 Web 项目, 并用 nuget 管理器添加下面几个 package: Owin Microsoft.Owin...Microsoft.Owin.Host.SystemWeb Microsoft.Owin.Security Microsoft.Owin.Security.Cookies Microsoft.Owin.Security.OAuth...配置 OWIN OAuth 中间件 添加一个 OWIN Startup Class , 名称为 Startup.cs , 如下所示: using Microsoft.Owin; using Owin;...[assembly: OwinStartup(typeof(Owin04_OAuthServer.Startup))] namespace Owin04_OAuthServer { public...仍然是新建一个空的 Web 项目, 添加下面的 NuGet 包: Owin Microsoft.Owin Microsoft.Owin.Host.SystemWeb Microsoft.Owin.Security
ASP.NET Web API 是 OWIN 兼容的, 因此可以在 OWIN 服务器上运行。...接下来使用 Xamarin Studio 创建一个 OWIN 兼容的 C# 类库, 也就是 OWIN 中定义的“应 用 (Application)” , 然后在不同的 OWIN 服务器/宿主上运行。...Newtonsoft.Json Owin 我们的目的是创建 OWIN 兼容的 Web API 应用, 自然要先添加一个 OWIN 约定的 Startup 类, 来配置我们的 OWIN 应用。...环境下运行 Web API OWIN 目前有兩個比较成熟的服务器: Katana 微软的 OWIN 服务器, 如果没有指定 OWIN 服务器, 则作为默认的 OWIN 服务器。...Microsoft.Owin Microsoft.Owin.Host.HttpListener Microsoft.Owin.Hosting Newtonsoft.Json Owin 在默认的 Program.cs
一、摘要 本期同样带给大家分享的是阿笨在实际工作中遇到的真实业务场景,请跟随阿笨的视角去如何实现采用微软的ASP.NET OWIN技术承载WebAPI服务,如果您对本期的教程内容感兴趣,那么请允许让阿笨带着大家一起学习吧...Http服务(.NET 2.0+) 基于WCF堆栈的自宿主SelfHosting 采用ASP.NET HttpSelfHost来承载WebAPI服务 (.NET 4.0+) 采用ASP.NET OWIN...五、涉及覆盖的知识点 ASP.NET WebAPI HttpSelfHost/OWIN 如何以桌面应用程序方式,宿主承载WebApi服务; ASP.NET WebAPI HttpSelfHost/OWIN
之前写过2篇关于refresh token的生成与持久化的博文:1)Web API与OAuth:既生access token,何生refresh token;2)ASP.NET OWIN OAuth:refresh
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...应用程序都需要一个Startup类作为OWIN管道中的配置类,ASP.NET Web API OWIN Self Hosting 基于约定胜于配置来找到Startup的一个Configuration方法
OWIN 是一种定义 Web 服务器和应用程序组件之间的交互的规范(请参阅 owin.org)。...Microsoft.Owin – 提供了一组辅助类型,以及为简化创建OWIN组件而建的各种抽象类型。...Microsoft.Owin.Testing – 提供了对OWIN组件进行单元测试的一些辅助类。...Microsoft.Owin.Hosting – 提供了托管与运行基于OWIN的应用程序所需的默认基础框架类型。...Microsoft.Owin.Host.SystemWeb – 也是OWIN服务器实现,但它允许基于OWIN的应用程序运行在IIS中,并能够使用ASP.NET的请求管道。
在 mono 下使用微软的 OWIN 认证中间件 使用 Microsoft.Owin.Security 中间件作为 OWIN 应用的标准验证在 IIS 下面工作良好, 不过最近在将 WebAPI 应用迁移到...这个异常是说无法加载类型 Microsoft.Owin.Security.DataProtection.DpapiDataProtector , 通过 ILSpy 分析 Microsoft.Owin.Security.dll...发现, Microsoft.Owin.Security.DataProtection.DpapiDataProtector 使用 System.Security.Cryptography.DpapiDataProtector...不过, Microsoft.Owin.Security 中预留了扩展接口 IDataProtectionProvider , 可以实现自定义的 IDataProtector, Mono 内置了 AesManaged...return new AesDataProtector(appName + ":" + string.Join(",", purposes)); } } 为了方便使用, 对 Owin.IAppBuilder
领取专属 10元无门槛券
手把手带您无忧上云