Web API在OWIN下实现OAuth】的更多相关文章

OAuth(Open Authorization) 为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的. 本节目录: Owin下WebAPI SelfHost 创建AccessToken 使用AccessToken Owin下WebAPI SelfHost 1.创建一个控制台项目(其实类库都可以)ApiServe…
OAuth(Open Authorization) 为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的. 本节目录: Owin下WebAPI SelfHost 创建AccessToken 使用AccessToken Owin下WebAPI SelfHost 1.创建一个控制台项目(其实类库都可以)ApiServe…
在前一篇博文中,我们通过以 OAuth 的 Client Credential Grant 授权方式(只验证调用客户端,不验证登录用户)拿到的 Access Token ,成功调用了与用户无关的 Web API. 在这篇博文中,我们将以 OAuth 的 Resource Owner Password Credentials Grant 的授权方式( grant_type=password )获取 Access Token,并以这个 Token 调用与用户相关的 Web API. 对应的应用场景是…
在前一篇博文中,我们使用OAuth的Client Credential Grant授权方式,在服务端通过CNBlogsAuthorizationServerProvider(Authorization Server的一个实现)成功发放了Access Token,并在客户端成功拿到了Access Token. 那Access Token有什么用呢?在OAuth中对Resource Server(比如Web API)访问权限的验证都是基于Access Token.不管是什么样的客户端来调用,Reso…
将OWIN App部署在IIS上 要想将Owin App部署在IIS上,只添加Package:Microsoft.OWIN.Host.SystemWeb包即可.它提供了所有Owin配置,Middleware注册等方面的Api.我们需要做的其实和SelfHost差不多. 我们依然需要实现Startup类,但是不是通过WebApp来启动了.我们需要通过将Startup类打上[assembly: OwinStartup(typeof(Startup))]来定义这是OWIN的Startup类,当应用运行…
授权完成添加属性 ClaimsIdentity oAuthIdentity = await CreateAsync(user/*userManager*/, OAuthDefaults.AuthenticationType, result); //oAuthIdentity.AddClaim(new Claim("proid", names[0])); //ClaimsIdentity cookiesIdentity = await user.GenerateUserIdentityA…
还好在坚持,今天继续更新第三篇随笔----使用owin来启动WebAPI(这里还是以IIS为宿主,当然也可以使用别的如Console.Windows Server等) 关于OWIN(Open Web Server Interface for .NET),.Net Web开发架构,在.NET Web Servers与Web Application之间定义了一套标准接口,目标是用于解耦Web Server和Web Application. 关于详细讲解,可阅读 Never.C的这篇文章  [ASP.…
在上篇文章介绍了Web Api中使用令牌进行授权的后端实现方法,基于WebApi2和OWIN OAuth实现了获取access token,使用token访问需授权的资源信息.本文将介绍在Web Api中启用刷新令牌的后端实现. 本文要用到上篇文章所使用的代码,代码编写环境为VS 2017..Net Framework 4.7.2,数据库为MS SQL 2008 R2. OAuth 刷新令牌 上文已经搞了一套Token授权访问,这里有多出来一个刷新令牌(Refresh Token),平白添加程序…
基于令牌的身份验证 基于令牌的身份验证主要区别于以前常用的常用的基于cookie的身份验证,基于cookie的身份验证在B/S架构中使用比较多,但是在Web Api中因其特殊性,基于cookie的身份验证已经不适合了,因为并不是每一个调用api的客户端都是从浏览器发起,我们面临的客户端可能是手机.平板.或者app. 使用基于Token令牌的身份验证有一些好处: 服务器的可伸缩性:发送到服务器的令牌是字包含的,不依赖与共享会话存储 松散耦合:前端应用程序位于特定的身份验证机制耦合,令牌是从服务器生…
在前一篇博文中,我们基于 ASP.NET Web API 与 OWIN OAuth 以 Resource Owner Password Credentials Grant 的授权方式( grant_type=password )获取到了 access token,并以这个 token 成功调用了与当前用户(resource owner)关联的 Web API. 本以为搞定了 access token 就搞定了 Web API 的验证与授权问题,可是发现 OAuth 中还有一种 token,叫 r…
Open Web Interface for .NET (OWIN)在Web服务器和Web应用程序之间建立一个抽象层.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…
使用 OWIN 作为 ASP.NET Web API 的宿主 ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动 设备)的 HTTP 服务. ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台. ASP.NET Web API 是 OWIN 兼容的, 因此可以在 OWIN 服务器上运行. 接下来使用 Xamarin Studio 创建一个 OWIN 兼容的 C# 类库, 也就是 OWIN…
本文转自:http://bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/ In the previous post Decouple OWIN Authorization Server from Resource Server we saw how we can separate the Authorization Server and the Resource Ser…
In the previous post Decouple OWIN Authorization Server from Resource Server we saw how we can separate the Authorization Server and the Resource Server by unifying the “decryptionKey” and “validationKey” key values in machineKey node in the web.conf…
ASP.NET Web API提供了一个独立于执行环境的抽象化的HTTP请求处理管道,而ASP.NET Web API自身的路由系统也不依赖于ASP.NET路由系统,所以它可以采用不同的寄宿方式运行于不同的应用程序中.如果采用Web Host的方式将定义Web API寄宿于一个Web应用之中,其实最终的URL路由还是通过ASP.NET本身的路由系统完成的,那么两个路由系统之间是如何衔接在一起的呢?.[本文已经同步到<How ASP.NET Web API Works?>] 目录 一.Hoste…
  Open Web Interface for .NET (OWIN)在Web服务器和Web应用程序之间建立一个抽象层.OWIN将网页应用程序从网页服务器分离出来,然后将应用程序托管于OWIN的程序而离开IIS之外.     Use OWIN to Self-Host ASP.NET Web API 2     This tutorial shows how to host ASP.NET Web API in a console application, using OWIN to self…
http://owin.org/ Owin 定义了webserver和webapplication之间的标准接口,目标就是为了解耦webapplication对webserver的依赖, 就是说以后可以轻松的建立一个轻量级的HttpServer, 1.Basic Sample  Self Host 下面建立一个Basic Self Host Http Server Via Owin ,全部功能就是获取客户端的Http请求,然后做出回应,当发生Unhandled Exception的时候,会自动跳…
适用范围 前面介绍了Client Credentials Grant ,只适合客户端的模式来使用,不涉及用户相关.而Resource Owner Password Credentials Grant模式中,用户向客户端提供自己的用户名和密码.客户端使用这些信息,向"服务商提供商"索要授权. 在这种模式中,用户必须把自己的密码给客户端,但是客户端不得储存密码.这通常用在用户对客户端高度信任的情况下,比如客户端是操作系统的一部分,或者由一个著名公司出品.而认证服务器只有在其他授权模式无法执…
转载:http://bitoftech.net/2014/08/11/asp-net-web-api-2-external-logins-social-logins-facebook-google-angularjs-app/ Ok so it is time to enable ASP.NET Web API 2 external logins such as Facebook & Google then consume this in our AngularJS application. I…
https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/individual-accounts-in-web-api Individual accounts provide two ways for a user to log in: Local login. The user registers at the site, entering a username and password. The app stores…
ASP.NET Web API 控制器创建过程(一) 前言 在前面对管道.路由有了基础的了解过后,本篇将带大家一起学习一下在ASP.NET Web API中控制器的创建过程,这过程分为几个部分下面的内容会为大家讲解第一个部分,也是ASP.NET Web API框架跟ASP.NET MVC框架实现上存在不同的一部分. ASP.NET Web API 控制器创建.激活过程 ASP.NET Web API 控制器创建过程(一) ASP.NET Web API 控制器创建过程(二) 未完待续 环境描述.…
ASP.NET Web API 路由对象介绍 前言 在ASP.NET.ASP.NET MVC和ASP.NET Web API这些框架中都会发现有路由的身影,它们的原理都差不多,只不过在不同的环境下作了一些微小的修改,这也是根据每个框架的特性来制定的,今天我们就来看一看路由的结构,虽然我在MVC系列里写过路由的篇幅不过在这里是Web API 路由对象介绍. ASP.NET Web API路由.管道 ASP.NET Web API 开篇介绍示例 ASP.NET Web API 路由对象介绍 ASP.…
ASP.NET MVC4中引入的Web API可以说是进行REST软件开发的利器(个人意见),但是最近在web form中混入web api时,发现一个问题:由于以前的web form项目中,使用到了session(包括那些复杂的底层逻辑),所以为了最小改动,必须保证web api能支持session.而web api默认情况下,是不支持session的. 问题重现 重现这个不支持session的问题,其实很简单.只需要新建一个web api项目,然后修改ValuesController的Get…
没想到多年之后我还得继续写这些东西.... 瀑布汗~ 最近不得不开始研究用web api MVC的项目中,在js文件里,实现点击一个按钮调用外部发布好的api,再从api把值回传给js页面,跳转. 经测试下面两种方法均有效获得api返回值. function testinfo(id) { $.ajax({ url: "http://158.14.51.103/api/Verify/Get", type: 'GET', dataType: 'JSON', data: { Id: id,…
我的博文里已经有多次提到CRM中的时间处理问题了,本篇继续探讨在web api的场景下时间字段如何处理,本篇只涉及查询,针对2016中新增的时间行为"用户当地时间"和"无时区"展开. 首先以我客户中的一条数据为例,出生日期为"2016/3/16",类型为"用户当地时间" 但当我以"2016-03-16"作为条件通过web api去查询时,却查不到任何数据(其实这个时候你应该依稀知道和时区有关了) 为了佐证我…
今天有在研究SignalR, 发现SignalR可以使用Self-Host的方式,就突发奇想,Web Api是不是也可以使用Self-Host的方式寄宿在Console Application或者其他的地方. 微软MSDN上给出的详细的答案,Web Api和WCF以及SignalR一样,支持Self-Host. 创建Self-Host项目 新建Console Application 创建成功之后,使用Nuget引入Web Api和Owin包. 打开Package Manager Console,…
在上一篇教程中我为大家介绍了Web API中Filter的开发使用,其中讲到ExceptionFilter时留了一个坑:ExceptionFilter只能截获并处理Action执行过程中发生的异常,在Action执行过程之外如果出现异常,ExceptionFilter是无能为力的. 这些异常包括: 1.  Controller构造方法中出现的异常 2.  MessageHandlers中出现的异常 3.  路由过程中出现的异常 4.  Body在序列化/反序列化过程中出现的异常 由此可以看出,E…
Web Api的ExceptionFilter只能截获并处理Action执行过程中发生的异常,在Action执行过程之外如果出现异常,ExceptionFilter是无能为力的. 这些异常包括: 1.  Controller构造方法中出现的异常 2.  MessageHandlers中出现的异常 3.  路由过程中出现的异常 4.  Body在序列化/反序列化过程中出现的异常 由此可以看出,ExceptionFilter只能解决ApiControler成功实例化后并执行Action期间出现的异常…
在这篇文章中 概观 演习 概要 由网络营 下载网络营训练包 在传统的Web应用程序中,客户机(浏览器)通过请求页面启动与服务器的通信.然后,服务器处理请求,并将页面的HTML发送给客户端.在与页面的后续交互中,用户导航到链接或提交带有数据的表单 - 新的请求将发送到服务器,流程将再次启动:服务器处理请求并将新页面发送到浏览器回应客户要求的新动作. 在单页面应用程序(SPA)中,整个页面在初始请求之后加载到浏览器中,但后续的交互通过Ajax请求进行.这意味着浏览器必须仅更新已更改的页面部分; 没有…
http://blog.geveo.com/OAuth-Implementation-for-WebAPI2 OAuth is an open standard for token based authentication and authorization on internet. In simple terms OAuth provides a way for applications to gain credentials to other application without dire…