原文链接: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. 深入JVM-Class装载系统

    一.Class文件的装载过程 Class类型通常以文件的形式存在(当然,任何二进制流都可以是Class类型),只有被Java虚拟机装载的Class类型才能在程序中使用.系统状态Class类型可以分为加 ...

  2. Ubuntu 12.04 root账户开启及密码重设

    以普通用户登录,root账号的开启.关闭和密码设置,命令如下: sudo passwd -u root # 启用root账户 sudo passwd root # 设置root 密码(包括重设) su ...

  3. electron package can not find module xml2json

    问题 electron 打包好的应用找不到xml2json 但是开发环境npm start 运行正常 定位 node_modules没有包含在打的包中, 解决办法 --no-prune Be care ...

  4. OC面向对象特性: 继承

    基础知识 1.标识符是有字母,数字,下划线组成的. 2.首字母只能是字母,下划线,不能为数字. 3.标识符要做到见名之意. 4.标识符不能使用已定义的关键字和预定义标识符. 继承 继承:子类可以直接访 ...

  5. 给ubuntu的docky添加可以直接打开的图标

    在/usr/share/applications和/usr/share/app-install/desktop寻找需要的图标,没有就自己做一个 eclipse的图标 [Desktop Entry] V ...

  6. 在VS中向命令行添加参数的方法

    在VS中向命令行添加参数的方法 在VS中向命令行添加参数,即向main()函数传递参数的方法: 右键单击要 添加参数的工程-->属性-->配置属性-->调试,在右侧“命令参数”栏输入 ...

  7. codeforces 723B Text Document Analysis(字符串模拟,)

    题目链接:http://codeforces.com/problemset/problem/723/B 题目大意: 输入n,给出n个字符的字符串,字符串由 英文字母(大小写都包括). 下划线'_' . ...

  8. 【ZeroClipboard is not defined】的解决方法

    参考:http://www.cnblogs.com/jfw10973/p/3921899.html https://github.com/zeroclipboard/zeroclipboard 近期该 ...

  9. jquery 停止animate动画,并且回复最初状态

    // 热门推荐悬浮效果 $("#recom_con li img").mouseenter(function(){ $(this).stop(true, true); $w = p ...

  10. yourtour的几种链接

    php,html {:URL('User-Register/index')}    格式:http://www.xxx.com/index.php?g=User&m=User&a=in ...