9.4用WebApi去连接外部认证服务
原文链接:http://www.asp.net/web-api/overview/security/external-authentication-services
VS2013和Asp.Net4.5.1为单页面应用程序(SPA)和WebApi服务扩展了安全服务并与外部认证服务进行整合,其中包括几个OAuth/OpenID和社交媒体的身份验证服务进行集成的安全选项: 微软账户, Twitter, Facebook, 和谷歌。
结合外部认证服务
配置 IIS Express 使用完全限定的域名
如何获得 Microsoft 认证您的应用程序设置
可选:禁用本地注册
1.系统必备组件
1.VS2013
2.至少一个下面的外部身份验证服务帐户 ︰
谷歌用户帐户
开发人员帐户应用程序标识符和以下的社交媒体身份验证服务之一的密钥 ︰
微软账户 (http://go.microsoft.com/fwlink/?LinkID=144070)
Twitter (https://dev.twitter.com/)
Facebook (https://developers.facebook.com/)
2.使用外部身份验证服务
丰富的 web 开发人员帮助减低发展到当前可用的外部身份验证服务创建新的 web 应用程序时的时间。Web 用户通常有好几种现有账户为流行的 web 服务和社交媒体网站,因此当身份验证服务的外部 web 服务或社会媒体网站的 web 应用程序实现,它节省了将会用于创建身份验证执行的发展时间。使用外部身份验证服务将保存最终用户,不必创建另一个帐户为您的 web 应用程序,以及从不必记住另一个用户名和密码。
在过去,开发人员有两种选择 ︰ 创建他们自己的身份验证实现,或学习如何集成到其应用程序的外部认证服务。在最基本的层面,下面的图表说明一个简单的请求流从一个 web 应用程序配置为使用外部身份验证服务请求信息的用户代理(web 浏览器):

在前面的图中,用户代理 (或 web 浏览器在此示例中) 到 web 应用程序,将 web 浏览器中重定向到外部认证服务发出的请求。用户代理将其凭据发送到外部认证服务,和外部认证服务如果用户代理已成功通过身份验证,会将用户代理重定向与某种形式的令牌,用户代理将发送给 web 应用程序的原始的 web 应用程序。Web 应用程序将使用该标记来验证用户代理更有外部认证服务,已成功通过身份验证和 web 应用程序可能使用该标记来收集有关用户代理的详细信息。一旦应用程序完成处理用户代理信息,web 应用程序将返回到用户代理基于其授权设置适当的反应。
在这第二个示例中,用户代理谈判与 web 应用程序和外部授权服务器和 web 应用程序执行额外的通信与外部授权服务器以检索用户代理有关的其他信息 ︰

VS2013和 ASP.NET 4.5.1与外部认证服务的集成开发人员更轻松地进行通过提供内置集成用于以下身份验证服务︰
- 谷歌
- 微软帐户 (Windows Live ID)
- 推特
在本演练中的示例将演示如何配置每个支持的外部身份验证服务通过使用 Visual Studio 2013 的 ASP.NET Web 应用程序模板。
3.创建一个示例 Web 应用程序
以下步骤将引导您通过使用 ASP.NET Web 应用程序模板,创建完一个示例应用程序,您将使用此示例应用程序为每个外部认证服务在本演练后面。
从开始页启动 VS 2013 选择新项目。或者,从文件菜单中,选择新建和项目.
9.4用WebApi去连接外部认证服务的更多相关文章
- Kubernetes连接外部数据源
Kubernetes架构下比较核心的问题是数据如何persistance,虽然提供了Persistent volumn的方式,但是对于像数据库之类的产品在kubernetes集群环境中运行和管理还是很 ...
- Kubernetes使用Eedpoints连接外部服务端口
Kubernetes使用Eedpoints连接外部服务端口 背景: 在Kubernetes的使用环境中,我们经常要连接外部的一些服务,比如mysql Elasticsearch kafka 等等外部的 ...
- 用Window Authentication的方式去连接SQLServer
用Window Authentication的方式去连接SQLServer Connection String: jdbc:sqlserver://${serverName};databaseName ...
- Hyper-V 虚拟机连接外部网络
Hyper-V创建好虚拟机之后,在默认配置下是没有网络连接的,这个时候就需要进行简单的配置,即可让虚拟机连接外部网络: 在Hyper-V管理器中,右键点击后出现菜单,选择"虚拟交换机管理器& ...
- PhpStorm常用快捷键以及如何连接外部服务器
PhpStorm常用快捷键以及如何连接外部服务器 PhpStorm作为我们phper使用的一款IDE,其功能是非常强大的,现在记录下常用的快捷键以及如何使用它与外部服务器进行连接使用. 一.Keyma ...
- 怎么从docker 内部去连接host 上的mysql
一般来说数据最好放在一个公共的地方,这样在多个docker 可以共享这些数据. 这篇文章就是讲怎么从docker 内部去连接host上的 mysql 数据库. 因为我的host 有public ip, ...
- 全网最详细的hive-site.xml配置文件里如何添加达到Hive与HBase的集成,即Hive通过这些参数去连接HBase(图文详解)
不多说,直接上干货! 一般,普通的情况是 全网最详细的hive-site.xml配置文件里添加<name>hive.cli.print.header</name>和<na ...
- Linux 内核探测和去连接的细节
在之前章节描述的 struct usb_driver 结构中, 驱动指定 2 个 USB 核心在合适的时候 调用的函数. 探测函数被调用, 当设备被安装时, USB 核心认为这个驱动应当处理; 探测 ...
- Jedis连接外部Redis
Jedis连接外部Redis 1.在服务器开放端口redis默认6379,如果有宝塔面板则还需要在宝塔放行6379端口 2.修改redis.conf 注释掉 绑定IP 127.0.0.1 # bind ...
随机推荐
- primefaces 通过selectOneMenu更新显示隐藏区域
最重要的是update的区域要指定整个panel,而不是想更新的那个组件 <h:form id="frm"> <h:panelGrid id="pane ...
- java函数substring()
String str; str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str: str=str.sub ...
- 关键字static(1)
static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念.被static修 ...
- C#调用WebService实现天气预报
http://zhangkui.blog.51cto.com/1796259/497324/ 本文使用Winform (C#)调用互联网上公开的WebServices(http://www.webxm ...
- BZOJ3557: [Ctsc2014]随机数
orz神犇们 clj(pw CCfCtsC2014) zyh cjj pyx vfk 吐槽一句对拍的时候发现这几份代码输出不一样. 每个数看成模2意义下的多项式: \[M_k\equiv x^kM_0 ...
- IOS 学习笔记之UI
自定义控件,实现部分 - (id)initWithFrame:(CGRect)frame descriptionText:(NSArray *)inText/*需要输入两个字符串*/ { self = ...
- geoip2 domain
DatabaseReader cityReader = GeoIP2Utils.getCityReader(); InetAddress inetAddress = InetAddress.getBy ...
- javascript Date format(js日期格式化)
这个用这比较爽,记录一下// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年( ...
- (新手向)基于Bootstrap的简单轮播图的手机实现
个人电脑里存了不少适合手机欣赏的图片,但是放手机里看是件很占据资源的事.鉴于家里有一台电脑经常开着,正好用来做家庭局域网共享,于是笔者就设想通过一种比较简单环保的思路.通过手机访问电脑内的图片. 首先 ...
- 深刻认识一下session
session是什么: session即会话,是一种持续性,双向的连接. session和cookie在本质上没什么区别,都是针对http协议的局限性提出的一种保持客户端和服务端会话状态的机制. se ...