使用 OWIN 作为 ASP.NET Web API 的宿主 ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动 设备)的 HTTP 服务。...ASP.NET Web API 是 OWIN 兼容的, 因此可以在 OWIN 服务器上运行。...Newtonsoft.Json Owin 我们的目的是创建 OWIN 兼容的 Web API 应用, 自然要先添加一个 OWIN 约定的 Startup 类, 来配置我们的 OWIN 应用。...最简单的方法是将上面代码中 StartOptions 的 ServerFactory 属性设置为 Nowin , 然 后在添加 Nowin 包就可以运行了: var baseAddress = "https...新建一个 C# 命令行程序, 项目名称为 Owin02_WebApi_Nowin , 添加下面的 NuGet 包: Microsoft.Owin Nowin Owin 向 Program.cs 文件中的
在前一篇文章中,我介绍了ASP.NET Identity 基本API的运用并创建了若干用户账号。...那么在本篇文章中,我将继续ASP.NET Identity 之旅,向您展示如何运用ASP.NET Identity 进行身份验证(Authentication)以及联合ASP.NET MVC 基于角色的授权...在该事件中,请求的URL会依据web.config中的authorization 配置节点进行授权,如下所示授予Kim以及所有Role为Administrator的成员具有访问权限,并且拒绝John以及匿名用户访问...中间件注册到OWIN Pipeline中 通过app.UseStageMarker(PipelineStage.Authenticate)方法,将前面添加的CookieAuthenticationMiddleware...方法创建ClaimsPrincipal对象并添加到Owin环境字典中,可以通过OwinContext对象Request.User可以获取当前用户。
api控制器里面的方面一般都是和请求对应的(逆天建议这样去写) 比如我们请求一下get,返回的数据就是我们上面方法的返回值 ? Post请求一下 ? Delete请求一下 ?...添加一个控制器 ? 取个名字 ? 他会自动继承apiContrller,定义几个常见的方法(请求) 方法可以有重载,方法体里面和C#代码差不多,原来怎么写还怎么写 ?...很多api接口都是用他来写,这次我们来带个参数: ? 这个是最基本的使用方法 有人会问了,web程序怎么访问呢?...用nuget添加web api owin self host包(对比传统项目引用,nuget的好处==》你依赖啥,我就帮你引入啥,不要你操心) ?...继承一下apiController并定义一下常见方法 ? 在main方面里面启动owin host ?
OWIN 中间件搭建自己的 OAuth 服务, 实现 OAuth2 框架中的认证服务器和资源服务器 。...使用 OWIN 搭建 OAuth2 认证服务器 认证服务器指 authorization server , 负责在资源所有者 (最终用户) 通过认证之后, 向客户端应用颁发凭据 (code) 和对客户端授权...新建空的 Web 项目 这一步很容易, 只要用 Visual Studio 新建一个空的 Web 项目, 并用 nuget 管理器添加下面几个 package: Owin Microsoft.Owin...App_Start 目录, 并在这个目录添加一个部分类文件 Startup.Auth.cs , 在这个文件中来实现上面的 ConfigureAuth 方法: using Owin04_Consts;...在 Startup.cs 的 Configuration 方法中添加下面的代码, 启用 Bearer 验证和 WebAPI : public void Configuration(IAppBuilder
伴随着网络应用程序开发的不断演进,ASP.NET也伴随着产生了新的技术,比如ASP.NET MVC和ASP.NET WEB API。...然后,这些组件链接成一个管道,基于 OWIN 的服务器将会向该管道推送请求。 为了更有效地使用资源,管道中的所有组件都应该是异步的,这体现在返回 Task 对象的应用程序委托中。...Node.js趁虚而入,它将自己称为高级异步web开发平台,而微软则希望通过在.NET 4.5中引入的async/await模型重新夺回这一称号。...例如 GET 和 POST)。...或 ASP.NET Web API 中的 HttpRequestMessage/HttpResponseMessage 的协议。
在之前的文章中,我为大家介绍了OWIN和Katana,有了对它们的基本了解后,才能更好的去学习ASP.NET Identity,因为它已经对OWIN 有了良好的集成。...ASP.NET 框架上,例如 ASP.NET MVC, Web Forms,Web Pages,ASP.NET Web API 和SignalR ASP.NET Identity 可以用在各种应用程序中...• NuGet 包 ASP.NET Identity 作为一个 NuGet 包进行发布,并且安装在ASP.NET MVC,Web Forms 和 ASP.NET Web API 项目模板中。...更新Web.config文件 若要将ASP.NET Identity使用在项目里,除了添加相应的包之外,还需要在Web.config中添加如下配置信息: 数据库连接字符串 指定的OWIN Startup...//也就是说UserStore类中的方法(诸如:FindById、FindByNameAsync...)通过EntityFramework检索和持久化UserInfo到数据库中
此日志网站想要导入你在QQ空间中的日志需要知道你的QQ用户名和密码才行,为了安全期间你不会把你的QQ用户名和密码直接输入在日志网站中,所以日志网站帮你导航到了QQ认证界面(Authorization Server...public AuthContext():base("AuthContext") { } } 同时在web.config中添加connectionString...()方法上加了Authorize标签,所以此api在没有授权的情况下将返回401 Unauthorize。...此次请求又得到了新的refresh_token,每次refresh_token只能用一次,因为在方法ReceiveAsync中我们一旦拿到refresh_token就删除了记录。.../web-api/overview/security/individual-accounts-in-web-api http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api
OWIN是什么? OWIN的英文全称是Open Web Interface for .NET。 如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口。...那Web接口是谁和谁之间的接口呢?是Web应用程序与Web服务器之间的接口,OWIN就是.NET Web应用程序与Web服务器之间的接口。 为什么需要这样一个接口呢?...所以,OWIN的作用就是通过引入一组抽象接口,解耦了.NET Web应用程序与Web服务器,再次体现了接口的重要性。在软件开发中,每次解耦都是一次很大的进步。...OWIN Self-Host ASP.NET Web API 2 首先我们创建一个空的控制台项目: ?...://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api
,并添加到_abpWebApiClient.Cookies的集合中,以便下次直接携带cookie信息访问webapi。...携带cookie访问webapi 服务器返回的cookie信息在登录成功后已经填充到_abpWebApiClient.Cookies中,我们只需post一个请求到目标api即可。...Token认证方式 Abp默认提供的token认证方式,很简单,我们仅需要post一个请求到/api/Account/Authenticate即可请求到token。...Abp集成OAuth2.0 在WebApi项目中的Api路径下创建Providers文件夹,添加SimpleAuthorizationServerProvider和SimpleRefreshTokenProvider...Token Based Authentication using ASP.NET Web API 2, Owin, and Identity
更有趣的是,浏览器链接是可自扩展的。Mads Kristensen已经用Web Essentials做到了这点并且向Browser Link里添加了扩展。...,Web API和SignalR 简单的弥补关于用户的配置数据 当在你的应用程序中创建新用户时,现在很容易为其添加额外信息。...可以轻松地创建,如“管理员”的角色,或向角色中添加指定的用户。 基于声明 ASP.NET Identity 支持基于声明的用户身份验证,用户的身份被表示为一组的权利请求,这就是一个声明。...外部登录 你可以轻松添加外部登录功能,如使用微软帐户、 Facebook、 Twitter 和谷歌账号登陆到你的应用中,应用程序只存储用户特定的数据。...API 2 OWIN的支持和整合 ?
,OWIN的目标是用于解耦Web Server和Web Application。...ASP.NET 和 IIS 我们知道,不管是ASP.NET MVC 还是ASP.NET WEB API 等都是基于ASP.NET Framework的,这种关系从前缀就可以窥倪出来。...使用OWIN,Web Framework不再依赖IIS和OS,这意味着你能使用任何你想的来替换IIS(比如:Katana或者Nowin),并且在必要时随时升级,而不是更新操作系统。...从字面上理解,每个OWIN中间件在必须有一个方法接受类型了IDictionary的变量(俗称环境字典),然后必须返回Task来异步执行。...通过Pipeline,每个中间件组件和层都可以添加额外的信息,但环境字典定义了一系列强制必须存在的Key,如下所示: Request Data: Required Key Name Value Description
这在当时无疑是成功的,ASP.NET的发布迅速拉拢了开发者,在Web开发中形成了一股新的势力,但同时也买下来一些隐患: 所有的功能、特性都发布在一个整体框架上并且紧耦合核心的Web抽象库——System.Web...ASP.NET Web API 随着时间的推移,一些问题开始暴露出来了,由于Web Server和Web Application紧耦合在一起,微软在开发独立、简单的Framework上越发捉襟见肘,这和其他平台下开源社区蓬勃发展形成鲜明对比...添加Startup启动类 ASP.NET/IIS作为Host System.Web作为Server 在Startup的Configuration方法中实现OWIN Pipeline处理逻辑...细心的你可能观察到,在Nuget安装Microsoft.Owin.Host.SystemWeb程序集时,默认安装了依赖项Microsoft.Owin程序集,正式它为我们提供了扩展方法Run和IOwinContext...使用类库 类库作为Application,可以最小的去引用程序集,创建一个类库后,删除默认的Class1.cs,然后并且添加Startup启动项,这会默认像类库中添加Owin和Microsoft.Owin
最早接触这个概念还是在一次面试的过程中,当时记得自己只能是通过卖萌将这一概念一笔带过,由于当时的项目实践相对较少,且被微软便捷的服务搭建所欺骗,以为搭建一个webService只用在IDE中添加有一个....,不同的服务方法需要不同权限控制 幂等性 对于同一个服务方法来说,相同的请求参数无论请求几次,都将获得相同的结果(简化版的解释,不太完备) 其他 与服务相关的概念非常多,比如:在架构层次流行的微服务,用于解耦应用...很简单,GET表示查询操作,PUT和DELETE表示更新和删除操作,POST表示插入操作,因此POST操作需要添加幂等控制的。...当然了,在WebAPI的实际设计中,接口的URL格式和http报文中Body的参数值会需要进一步的思考。...在vs2013中的MVC5模板中,添加如下DLL,和在nuget中package添加如下配置。
我们并不能改变以上管道中每一个结点中的执行顺序,而我们自定义的HttpModule是按照我们在web.config中定义的顺序被添加的。...你也可以用Attribute和在web.config文件中配置的方式来定义这个类,详情见Startup。我们在Configuration方法里面,就可以定义我们自己的管道了。...而这个环境变量会从一开始,一直到最后结束,在整个管道的每一步中我们都能够访问得到,并且可以添加和修改。就是这样最后得到一个Http Response返回给客户端的。...如果这还不够的话,我们还可以学习ASP.NET Identity Middleware以及WEB Api Owin Middleware的作法,为IAppBuilder添加扩展方法,这样调用都甚至都不需要知道我们...Middleware的类名,只需要调用扩展方法就可以了,比如说Web Api的app.UseWebAPI()。
经过前2篇文章的介绍,相信大家已经对OWIN和Katana有了基本的了解,那么这篇文章我将继续OWIN和Katana之旅——创建自定义的Middleware中间件。...注意Middleware是基于约定的形式定义的,需要满足如下条件: 构造函数的第一个参数必须是Pipeline中下一个Middleware 必须包含一个Invoke方法,它接收Owin环境字典,并返回Task...Pipeline中: app.Use(); Middleware的执行顺序 在完成上面Middleware注册之后,在Configuration方法的最后添加最后一个的...,即和Configuration方法中书写的顺序保持一致,Response顺序则正好相反,如下图所示: ?...和其他Web Framework的集成。
Open Web Interface for .NET (OWIN)在Web服务器和Web应用程序之间建立一个抽象层。...认证和OWIN。...应用程序都需要一个Startup类作为OWIN管道中的配置类,ASP.NET Web API OWIN Self Hosting 基于约定胜于配置来找到Startup的一个Configuration方法...UseWebApi 方法通过 ASP.NET Web API 框架 动态的将配置添加到 IAppBuilder。...当调用 UseWebApi 时,ASP.NET Web API 中间件组件被添加到OWIN管道中用所提供的 HTTPConfiguration 对象。
所有步骤在浏览器中完成,令牌对访问者是可见的,且客户端不需要认证。 密码模式(resource owner password credentials)--用户向客户端提供自己的用户名和密码。...在这个场景中,用户登录系统实际上分为了3个步骤: 用户在登录界面,输入用户名和密码,提交登录请求; 【认证】系统校验用户输入的用户名和密码是否在人员信息表中; 【授权】给当前用户授予相应的角色权限。...clientId 和clientSecret 信息,这个信息需要指定到本次请求的Authorization 头信息里面; 然后在请求正文里面,指定授权类型,这里应该是"password",再在正文里面添加用户名和密码参数...getSessionHttpClient 方法中,将原始请求的Cookie值一一复制到新的请求上去。...在授权服务器的 OpenAuthorizationServerProvider 的GrantResourceOwnerCredentials 方法中,提取出这两个参数信息: public
尽管当前发布版本中,还不支持 Web Pages and SignalR。 在之前的 ASP.NET MVC 中, MVC 控制器和 Web API 控制器是不同的。...Microsoft 开发了 Katana 作为一个 OWIN 的实现,可以部署 ASP.NET Web API, SignalR 和其他第三方框架,这些框架可以在 IIS 和 IIS Express,...这个管道不再依赖 System.Web,通过降低管道中的开销,你的 app 性能更加优良,更好的调谐 HTTP 协议栈。新的管道基于 Katana 项目经验,同时支持 OWIN。...这是在刷新页面之后的输出: Attribute Routing: [controller] 和 [action] 标记 在过去的 MVC 和 Web API 中,使用路由属性可能会导致一些问题,尤其是你正在做一些代码重构...2 SignalR 3 ASP.NET Core 也是以 SignalR 3 为基础,这使得你可以向云连接的应用程序添加实时功能。
为了将它们分离,引入了 OWIN 来提供一种更为简便的同时使用多个框架的方法。 OWIN 提供了一个管道,可以只添加所需的模块。 托管环境使用 Startup 函数配置服务和应用的请求管道。...Startup 在应用程序中注册一组中间件。 对于每个请求,应用程序都使用现有处理程序集的链接列表的头指针调用各个中间件组件。 每个中间件组件可以向请求处理管道添加一个或多个处理程序。...//关闭此选项后,通过在RouteTable.routes上使用MapOwinPath或MapOwinRoute扩展在global.asax文件中添加路由,您仍然可以让OWIN应用监听特定路由...在 Configure 中,向管道添加必要的中间件。...,因此可以在 Startup.cs 的 ConfigureServices 方法中添加你的服务: public void ConfigureServices(IServiceCollection services
OWIN 的全称是 “Open Web Interface for .NET”, OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口, 其目的是为了实现服务器与应用之间的解耦...Web 框架 (Web Framework) 构建在 OWIN 之上的自包含的独立组件, 向 Web 应用提供可用的对象模型或者接口。 Web 框架可 能需要一个适配层来转换 OWIN 语义。...向项目中添加如下几个 NuGet 包: Owin Microsoft.Owin Microsoft.Owin.Hosting Microsoft.Owin.Host.HttpListener 添加一个...方法, 所以上面的 Startup 类就定义了一个最简单的 OWIN 应用, 向客户端输出 Hello, World!...在自动生成的 Program.cs 文件中的 Main 方法中添加如下代码, 来启动 OWIN 应用: class MainClass { public static void Main
领取专属 10元无门槛券
手把手带您无忧上云