原文链接:http://www.asp.net/web-api/overview/security/external-authentication-services

VS2013和Asp.Net4.5.1为单页面应用程序(SPA)和WebApi服务扩展了安全服务并与外部认证服务进行整合,其中包括几个OAuth/OpenID和社交媒体的身份验证服务进行集成的安全选项: 微软账户, Twitter, Facebook, 和谷歌。

在本章节你会:
  使用外部身份验证服务
  创建示例Web应用程序
  启用FaceBook的身份验证
  启用谷歌的身份验证
  启用微软的身份验证
  启用Twitter的身份验证
  附加信息:

    结合外部认证服务

    配置 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与外部认证服务的集成开发人员更轻松地进行通过提供内置集成用于以下身份验证服务︰

  • Facebook
  • 谷歌
  • 微软帐户 (Windows Live ID)
  • 推特

在本演练中的示例将演示如何配置每个支持的外部身份验证服务通过使用 Visual Studio 2013 的 ASP.NET Web 应用程序模板。

3.创建一个示例 Web 应用程序

以下步骤将引导您通过使用 ASP.NET Web 应用程序模板,创建完一个示例应用程序,您将使用此示例应用程序为每个外部认证服务在本演练后面。

从开始页启动 VS 2013 选择新项目。或者,从文件菜单中,选择新建项目.

9.4用WebApi去连接外部认证服务的更多相关文章

  1. Kubernetes连接外部数据源

    Kubernetes架构下比较核心的问题是数据如何persistance,虽然提供了Persistent volumn的方式,但是对于像数据库之类的产品在kubernetes集群环境中运行和管理还是很 ...

  2. Kubernetes使用Eedpoints连接外部服务端口

    Kubernetes使用Eedpoints连接外部服务端口 背景: 在Kubernetes的使用环境中,我们经常要连接外部的一些服务,比如mysql Elasticsearch kafka 等等外部的 ...

  3. 用Window Authentication的方式去连接SQLServer

    用Window Authentication的方式去连接SQLServer Connection String: jdbc:sqlserver://${serverName};databaseName ...

  4. Hyper-V 虚拟机连接外部网络

    Hyper-V创建好虚拟机之后,在默认配置下是没有网络连接的,这个时候就需要进行简单的配置,即可让虚拟机连接外部网络: 在Hyper-V管理器中,右键点击后出现菜单,选择"虚拟交换机管理器& ...

  5. PhpStorm常用快捷键以及如何连接外部服务器

    PhpStorm常用快捷键以及如何连接外部服务器 PhpStorm作为我们phper使用的一款IDE,其功能是非常强大的,现在记录下常用的快捷键以及如何使用它与外部服务器进行连接使用. 一.Keyma ...

  6. 怎么从docker 内部去连接host 上的mysql

    一般来说数据最好放在一个公共的地方,这样在多个docker 可以共享这些数据. 这篇文章就是讲怎么从docker 内部去连接host上的 mysql 数据库. 因为我的host 有public ip, ...

  7. 全网最详细的hive-site.xml配置文件里如何添加达到Hive与HBase的集成,即Hive通过这些参数去连接HBase(图文详解)

    不多说,直接上干货! 一般,普通的情况是 全网最详细的hive-site.xml配置文件里添加<name>hive.cli.print.header</name>和<na ...

  8. Linux 内核探测和去连接的细节

    在之前章节描述的 struct usb_driver 结构中, 驱动指定 2 个 USB 核心在合适的时候 调用的函数. 探测函数被调用, 当设备被安装时, USB 核心认为这个驱动应当处理; 探测 ...

  9. Jedis连接外部Redis

    Jedis连接外部Redis 1.在服务器开放端口redis默认6379,如果有宝塔面板则还需要在宝塔放行6379端口 2.修改redis.conf 注释掉 绑定IP 127.0.0.1 # bind ...

随机推荐

  1. POJ3659 [usaco2008jan_gold]电话网络

    校内OJ上的题,刚开始做的时候以为是道SB题10分钟就能搞完.. 然后准备敲了才发现自己是个SB.. 刚开始以为是个很裸的TreeDP,然后就只设了两个状态,但是怎么想怎么不对.复杂度好像要爆炸.改成 ...

  2. JS-DOM 综合练习-动态添加删除班级成绩表

    费了2个小时,才把原理弄懂,把问题逐个解决,当你发现你最后栽的那个点,是一个小石头拌的你,你起来是该哭还是该笑呢?只怪自己习武不精吧. 虽然问题都解决了,但是还有一个余留的问题就是鼠标经过input时 ...

  3. java8 中的时间和数据的变化

    java8除了lambda表达式之外还对时间和数组这两块常用API做想应调整, Stream 有几个常用函数: store 排序 (a,b)-> a.compareTo(b)  排出来的结果是正 ...

  4. win7怎么显示隐藏文件夹

    1. 点击“组织”,再选择“文件夹和搜索选项”命令. 2. 接下来在打开的“文件夹选项”对话框中,单击“查看”,切换到“查看”选项卡中. 3. 然后在下面的“高级设置”区域,取消“隐藏受保护的操作系统 ...

  5. 2016 年 Python 开发者调查结果

    1.在团队中工作 vs 独立工作 有趣的是,半数的受访者大部分时间在团队中工作,而另外半数的受访者则独立的做项目. 在公司中工作 vs 独立从事自己的项目 大约80%的受访者告诉我们,他们在公司里面工 ...

  6. 调用startActivityForResult,onActivityResult无响应的解决办法

    三种情况: 1.执行startActivityForResult,没等到被调用的 Activity 返回,onActivityResult() 就被执行了.找了很久,终于通过小道消息得知,这与 Act ...

  7. div文字超出

    效果一:div文字超出处理 <div style="width:200px; white-space:nowrap;overflow:hidden;text-overflow:elli ...

  8. centos忘记开机密码

    系统:centos6.6,忘记开机密码,进入单用户模式进行重置,以下为操作过程. 1. reset(重启)Linux系统,在出现如下图的界面时,请点Enter键,确保一定要快,只存在几秒.. 2.点击 ...

  9. RHEL-界面中文乱码问题

    一.虚拟机里的rhel更换为中文简体后,中文字符变为小方块 二.解决方法: 安装中文支持的软件包 fonts-chinese-3.02-12.el5.noarch.rpm fonts-ISO8859- ...

  10. spring 容器技术入门

    官方文档 翻译 https://waylau.gitbooks.io/spring-framework-4-reference/content/III.%20Core%20Technologies/C ...