ASP.NET MVC中三方登录: 微软、谷歌、Office365

创建一个MVC的工程,在Startup.Auth.cs文件中,我们能看到这样的一些代码:

这其实是微软已经帮我们实现好的三方登录的接口,我们只需要创建相应的开发者账号,并在其中配置好跟我们应用程序相关的一些信息,获取到应用程序的Id跟密码,填到上面相应的接口中,即可实现相应账号的三方登录。

 

一、微软账号三方登录介绍

微软的开发者账号管理地址为:https://account.live.com/developers/applications/index。微软三方登录开发者账号配置的一些说明:

1、一个应用程序只能配一个有效的根域名,并且该根域名不能是localhost,该根域会自动从你填写的Redirect URLs中进行判断填充。

2、三方登录用到的Redirect URL格式必须为http://www.rootDomain.com/signin-microsoft。其中HTTP协议、根域名以及端口号是可以自由配置的,后面的/signin-microsoft是固定不变的。

二、谷歌账号三方登录介绍

谷歌的开发者账号管理地址为:https://console.developers.google.com/project。谷歌三方登录开发者账号配置的一些说明:

1、要实现谷歌三方登录,必须Enable Google+ API,其它需要的API可以自行添加。

2、谷歌的一个Client ID中,可以配置多个根域不同的Redirect URIs,并且可以是localhost。

3、三方登录用到的Redirect URL格式必须为http://www.rootDomain.com/signin-google。其中HTTP协议、根域名以及端口号是可以自由配置的,后面的/signin-google是固定不变的。

三、Office 365三方登录介绍

首先要说的是,微软有两套账号系统,一套称作Microsoft Account,就是我们所谓的微软账号,登录地址为:https://login.live.com/,或者使用地址https://www.outlook.com/,会进行自动跳转。另一套称作Work or School Account,就是我们所谓的Office 365,登录地址为:https://login.microsoftonline.com/,或者使用地址https://outlook.office365.com/,也会进行自动跳转。

其次,微软没有为我们提供封装好的Office 365三方登录的接口,在这里我们可以使用OpenId身份验证来实现Office 365的三方登录。具体步骤包括以下几点:

1、拥有一个Office365账号,如果没有的话,可以申请一个30天的免费账号,申请地址在:

https://portal.office.com/Signup/Signup.aspx?OfferId=8368ac6a-5797-4859-b2ec-4d32330277c9&dl=O365_BUSINESS&Country=US&culture=en-us&ali=1#0

2、下载Office Developer Tools for Visual Studio并安装,因为Office365的用户数据都放在Azure AD上,所以我们需要在Azure AD上注册我们的应用程序以获取用户数据,这个工具可以和Visual Studio集成,方便注册我们的应用程序,下载地址:http://aka.ms/OfficeDevToolsForVS2013

3、使用VS创建一个MVC框架的Web Application,右键点击该工程,选择“Properties”,“Add”,“Connected Service”

然后点击“Register your app”,成功登录你的Office365账号后,即完成App的注册工作。

此时点击Web.config文件,即可看到我们注册成功后获取到的ClientID跟Password等信息。

如需要重新注册该程序,只需要把Web.config文件中的ida:ClientID和ida:Password配置项删除,然后再次Add Conencted Service时,会让你重新注册该程序。

4、在Office 365 APIs配置页面中,选中相应的Service,点击右面的“Permissions”,即可根据需要对该Service进行访问权限的设置。

访问权限设置完成后,可以看到相关的设置大致如下:

5、点击Office 365 APIs配置页面中的App Properties,我们可以设置App的一些属性,包括该App注册后显示的名称、该App可被访问的范围以及认证成功后的Redirect URIs,

该Redirect URIs只填写我们的根域即可,同时可以注册多个不同的URI地址。

6、安装OpenIdConnect相关的组件包 Install-Package Microsoft.Owin.Security.OpenIdConnect。

7、编写代码,大致内容如下:

四、支持MVC的开发工具

ComponentOne Studio ASP.NET MVC 这款轻量级控件,它与Visual Studio无缝集成,完全与MVC6和ASP.NET 5.0兼容,将大幅提高工作效率.

 

时间: 2024-10-25 03:12:56

ASP.NET MVC中三方登录: 微软、谷歌、Office365的相关文章

在 Asp.NET MVC 中使用 SignalR 实现推送功能

原文http://www.cnblogs.com/kesalin/archive/2012/11/09/signalr_push.html 在 Asp.NET MVC 中使用 SignalR 实现推送功能 罗朝辉 ( http://www.cnblogs.com/kesalin/ ) CC许可,转载请注明出处   一,简介 Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户

ASP.NET MVC中图表控件的使用方法_实用技巧

微软发布了一个强大的ASP.NET的图表控件,支持丰富的图表选项设置-包括列,点,泡沫,饼图,圆环图,金字塔,漏斗,盒形图,面积,范围,AJAX的互动,以及更多.Microsoft图表控件示例项目包括ASP.NET页的图表样本超过200个.在这篇文章中,我将展示如何在ASP.NET MVC中使用图表控件. 这里介绍一个非常简单的项目,显示了一个类的结果比较.两个字段 - ID(这是唯一的一个学生)和GPA(平均成绩) - 代表一个特定的学生的结果.各种图表结果显示,学生的结果进行比较.我希望把重

Asp.net MVC中获取控制器的名称的方法_实用技巧

1.视图中 string controller = ViewContext.RouteData.Route.GetRouteData(this.Context).Values["controller"].ToString(); string controller = ViewContext.RouteData.Values["controller"].ToString(); 2.控制器的action中 string controller = RouteData.Ro

如何在 ASP.NET MVC 中集成 AngularJS(3)

今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表:一个运行在调试模式的应用程序下和一个运行在发布模式的应用程序下.在调试模式下,JavaScript 文件在未使用压缩功能的情况下会被下载.如果想要调试并在 JavaScript 控制器中设置断点,这是必须的.事实上,路由表的产生版本也出现了一些挑战,由于产生路由代码使用的是 JavaScript

如何在 ASP.NET MVC 中集成 AngularJS(2)

在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩.应用程序版本自动刷新和工程构建等内容. 下面介绍如何在 ASP.NET MVC 中集成 AngularJS 的第二部分. ASP.NET 捆绑和压缩 CSS 和 JavaScript 的捆绑与压缩功能是 ASP.NET MVC 最流行和有效的特性之一.捆绑和压缩降低了 HTTP 请求和有效载荷的大小,结果是可以更快和更好的执行 ASP.NET MVC 的网站.有许多可以减少 CS

如何在 ASP.NET MVC 中集成 AngularJS(1)

介绍 当涉及到计算机软件的开发时,我想运用所有的最新技术.例如,前端使用最新的 JavaScript 技术,服务器端使用最新的基于 REST 的 Web API 服务.另外,还有最新的数据库技术.最新的设计模式和技术. 当选择最新的软件技术时,有几个因素在起作用,其中包括如何将这些技术整合起来.过去两年中,我最喜欢的一项技术就是设计单页面应用(SPA)的 AngularJS.作为一个微软stack开发者,我也是使用 ASP.NET MVC 平台实现 MVC 设计模式和并进行研究的粉丝,包括它的捆

ASP.NET MVC中对数据进行排序的方“.NET研究”法

本系列是讲解如何在asp.net mvc中对数据进行展示.排序.分页等的系列文章.在上周的文章中,一步一步教会了大家如何使用ASP.NET MVC框架去的展示数据.在上周的文章中,我们先用Visual Studio创建了一个新的ASP.NET MVC应用程序,接着连接到了Northwind数据库,并展示了如何使用微软的LINQ-SQL的工具去访问数据库中的数据,接着指导如何去实现视图层去展示产品信息及如何设计控制器. 本文是在上一篇文章的例子基础上,展示了如何去实现数据的双向排序.如果你是已经熟

一起谈.NET技术,ASP.NET MVC中对数据进行排序的方法

本系列是讲解如何在asp.net mvc中对数据进行展示.排序.分页等的系列文章.在上周的文章中,一步一步教会了大家如何使用ASP.NET MVC框架去的展示数据.在上周的文章中,我们先用Visual Studio创建了一个新的ASP.NET MVC应用程序,接着连接到了Northwind数据库,并展示了如何使用微软的LINQ-SQL的工具去访问数据库中的数据,接着指导如何去实现视图层去展示产品信息及如何设计控制器. 本文是在上一篇文章的例子基础上,展示了如何去实现数据的双向排序.如果你是已经熟

ASP.NET MVC中实现多个按钮提交的几种方法

有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能,比如一个简单的审批功能. 如果是用webform那不需要讨论,但asp.net mvc中一个表单只能提交到一个Action处理,相对比较麻烦点. 方法一:使用客户端脚本 比如我们在View中这样写: 代码<inputtype="submit"value="审核通过"onclick='this.form.action="<%=Url.Action("Action1"