原文链接: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. 淘宝npm镜像

    来源:https://cnodejs.org/topic/4f9904f9407edba21468f31e 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在 ...

  2. 在linux下如何将文件夹打包

    tar tar命令可以用来压缩打包单文件.多个文件.单个目录.多个目录. 常用格式: 单个文件压缩打包 tar czvf my.tar file1 多个文件压缩打包 tar czvf my.tar f ...

  3. JDBC编程的方式

    JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 从上面可以看出JDBC编程一般要如下步骤: 1. 加载数据库驱动 2. 创建并获取数据库连接 3. 创建jdbc stateme ...

  4. java编程思想-java中的并发(一)

    一.基本的线程机制 并发编程使我们可以将程序划分为多个分离的.独立运行的任务.通过使用多线程机制,这些独立任务中的每一个都将由执行线程来驱动. 线程模型为编程带来了便利,它简化了在单一程序中同时jia ...

  5. easyUI数据表格datagrid之笔记

    1.用ajax获取数据库数据 /**========================================= * 读取数据库信息,使用ajax的load方法 */function getMe ...

  6. 查询centos查看系统内核版本,系统版本,32位还是64位

    [root@centos01 ~]# lsb_release -a           #查看centos 版本为6.4LSB Version: :base-4.0-amd64:base-4.0-no ...

  7. 比较详细Python正则表达式操作指南(re使用)

    比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...

  8. yourphp基本语句

    实例化页面代码 1.时间代码:{$vo.createtime|toDate=###,'Y-m-d H:i:s'} 2.连接:{:U('Pro/arr')},{:URL()} 如:<form ac ...

  9. 修改美化Matlab字体

    修改美化Matlab字体    MATLAB作为高校理工科类本科生或研究生必不可少的科研工具已经有着很多年的历史,以至于在我们的大学生活里或科研工作中,MATLAB处处闪现着它的身影,给我们带来了不少 ...

  10. php常用时间戳记录

    <?php echo '<br/>'; //php获取今日开始时间戳和结束时间戳 echo "今天"; echo '<br/>'; $beginTod ...