本地ASP.NET开发页面使用AzureAD(AAD)验证登录 推荐 原创 有伊说一 2016-07-25 20:55:20 博主文章分类:Vbscript/Java ©著作权 文章标签 本地ASP.NET开发页面使用Azure 文章分类 .Net 后端开发 ©著作权归作者所有:来自51CTO博客作者有伊说一的原创作品,谢绝转载,否则将追究法律责任 本地ASP.NET开发页面使用AzureAD(AAD)验证登录Azure和Office365已不是一个热门话题了,因为所谓的云时代已经走进了技术大师们的内心,大家多少有一定了解了,所以就不多介绍了,我的Blog中之前也写了很多关于Azure及Office365的相关文章,如果有兴趣的同学可以参考一下。一般企业内部如果使用了Azure或者Office365产品的话,都会跟本地的域进行验证绑定,然后可以使用相关工具(Dirsync & Azure AD Connect)将本地的域用户同步到AAD里面,然后配置ADFS使用本地的域用户格式进行登录及管理Azure相关服务等,当然也有其他的一些做法,具体就不介绍了,我们首先要知道,Azure 和Office365使用的是同一个AD服务,所以注册的时候自定义的域名称也就是唯一标识了,比如,当注册一个oa@ixmsoft.onmicrosoft.com(portal.office.com)的office365顶订阅的账户的时候,系统也会保留一个oa@imxmsoft.onmicrosoft.com;(manage.windowsazure.com)的订阅账户如果是国内供应商提高的需要将结尾更改为:partner.onm51CTO提醒您,请勿滥发广告!即可。在任何一个账户上新建账户都会显示。如果一开始注册了Office365,就可以通过https://manager.onmicrosoft.com进行提示注册或者管理对应的Azure订阅了,如果是注册了Azure,就可以通过访问https://portal.office.com 进行提示注册或管理对应的Office365订阅了。今天呢,我们主要介绍的是如果通过AAD验证本地开发的自定义web服务(ASP.NET)首先是介绍一下大概的原理,原理就是我们需要在AAD中注册一个程序,然后通过配置程序值返回对应的URL信息,然后完成对应的验证,整个过程跟本地配置ADFS及ADFS验证登录过程非常类似,废话不多说了,具体见下:我们当然是首先需要一个Azure账户,具体就不掩饰了,然后验证本地域;我们首先加本地域添加到Azure中,我们只需要验证就可以,在dns中添加一条txt记录,不使用skype、exchange等服务即可;添加后,我们可以使用Azure AD Connect 工具将本地的用户同步到Azure AD中,当然,也可以直接在本地以添加的域新建用户。我们因为不用sso,所以不勾选sso开始验证DNS然后我们在公网DNS上添加验证记录验证成功然后我 可以看见在office365上也会出现域信息接下来我们添加用户;然后后缀名以本地域进行添加添加完成接下来就是添加应用程序了选择添加开的应用程序我们定义任意名称定义返回的url添加完成后,我们也可以通过配置选项进行修改我们首先选择客户端ID,复制数据复制后,我们在代码中修改;我们首先是通过Visual Studio打开相关的代码项目;配置好对应的路劲打开web.config配置文件<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=301880 --> <configuration> <appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavascriptEnabled" value="true" /> <add key="ida:ClientId" value="cbc2336e-e7aa-445e-a751-8219830b873a" /> <!--在AAD中注册应用程序完成时获取到的ID--> <add key="ida:Tenant" value="beyondsoft100.partner.onm51CTO提醒您,请勿滥发广告!" /> <!--contoso.onmicrosoft.com]--> <!--当前租户名称:当前目录中粗行间用户是所用的后缀名--> <add key="ida:AADInstance" value=" https://login.chinacloudapi.cn/{0}" /> <!--在AAD的端点好看也可以获取到--> <add key="ida:PostLogoutRedirectUri" value=" https://localhost:44320?username=test/" /> <!--在AAD中注册程序时所填写的返回URL地址--> </appSettings> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.IdentityModel.Tokens.Jwt" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.2.28" newVersion="4.0.2.28" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.IdentityModel.Protocol.Extensions" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.0.2.28" newVersion="1.0.2.28" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>通过对应的数据进行修改即可所以修改为 fanwei.onmicrosoft.com然后修改登录域名,国际版本为国际版本为windows.net最后,修改需要返回的url,保存后,我们进行测试我们可以查看已经开始执行debug模式同时我们也可以查看到登录页面了,我们单击登录我们发现直接跳转到了我们的新建的WEBSERVER的应用程序界面了,其实该界面也类似于我们的ADFS界面我们使用user01@ixmsoft.com用户进行登录其实已经登录成功了,提示第一次登录需要修改密码我们按照提示修改一次密码,及正确登录------------------------------------------------------------------------------------------------------------------我们为了更好的显示,我们修改本地的显示页面定义显示内容即可登录成功了。页面的右上角正常显示当前登录的用户名 赞 收藏 评论 分享 举报 上一篇:Centos 定时压缩备份数据 下一篇:本地JAVA开发页面使用AzureAD(AAD)验证登录 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 C# .NET面试系列六:ASP.NET MVC ASP.NET MVC1. MVC 中的 TempData\ViewBag\ViewData 区别?在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。TempData:1、生命周期TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就 C# .NET 面试 ASP.NET MVC Asp.net mvc教案-7 Mvc4 Check测试 在ASP.NET MVC4中,可以使用CheckBox来进行数据的提交。以下是几种方法:1.使用Html.CheckBox@Html.CheckBox("CheckboxName")2.使用Html.CheckBoxFor@Html.CheckBoxFor(model => model.CheckboxProperty)3.使用传统方法<input html check mvc asp.net C# .NET面试系列七:ASP.NET Core 第一部分:ASP.NET Core1. 如何在 controller 中注入 service?在.NET中,在ASP.NET Core应用程序中的Controller中注入服务通常使用依赖注入(Dependency Injection)来实现。以下是一些步骤,说明如何在Controller中注入服务:1、创建服务首先,确保你已经在应用程序中注册了服务。这通常在Startup.cs文件的Config C# .NET 面试 返璞归真 asp.net mvc (6) - asp.net mvc 2.0 新特性 [源码下载]返璞归真 asp.net mvc (6) - asp.net mvc 2.0 新特性作者:[源码下载] asp mvc 休闲 特性 返璞归真 ASP.NET MVC:some benefits of asp.net mvc Full control over HTMLFull control over URLsBetter separation of concernsExtensibilityTestability 分享 ASP.NET MVC 4 - 测试驱动 ASP.NET MVC 测试驱动 ASP.NET MVC Keith Burnell 下载代码示例 模型-视图-控制器 (MVC) 模式的核心是将 UI 功能划分成三个组成部分。模型表示您的领域的数据和行为。视图管理模型的显示并且处理与用户的交互。控制器协调视图和模型之间的交互。通过这样将本质上就难于测试的 UI 逻辑与业务逻辑分离开来,使得使用 MV 依赖关系 解决方案 应用程序 net6 使用redis asp.net redis教程 ASP.NET Core 依赖注入 ASP.NET Core 中的分布式缓存(SQL Server 和 Redis 分布式缓存) Redis 模式类型 Redis 安装、数据类型、模式类型、键(key)命令 Redis 命令参考(红色)Redis 命令参考(蓝色)Redis 数据库学习教程Redis 官网 1、服务器安装 Red net6 使用redis 缓存 redis Redis System net6使用mongodb asp.net core mongodb 前言现实中认识的一个搞java(百万富婆)的大佬,已经转行做抖音主播了,搞技术的只能赶在年前再水一篇博客,不足之处欢迎拍砖,以免误人子弟,呔,真是太难受了环境准备.net core 3.1MongoDBNavicat Premium 16创建项目1.选择ASP.NET Core Web API 项目模板2.配置项目信息 项目名称,项目路径3.配置项目 net6使用mongodb 数据 Database 字段 asp.net mvc 接收参数 asp.net mvc6 目录第一章ASP.NET Core MVC 是一个微软公司开发的Web应用程序开发框架,它结合了MVC架构的高效性和简洁性,敏捷开发的思想和技术和.NET 平台的最好的部分。在本章,我们将学习为什么微软创建ASP.NET Core MVC, 看看他和他的前辈的比较以及和其他类似框架的比较,最后,大概讲一下ASP.NET core MVC里面有什么新东西,还有本书中包括哪些内容。了解ASP.NET MVC ASP Core asp.net mvc ef asp.net mvc ef6 bootstrap 今天把用户的菜单显示和页面的按钮显示都做好了,下面先来个效果图接下来说下我实现的方法:首先我在每个方法前面都加了这个属性,/// <summary> /// 表示当前Action请求为一个具体的功能页面 /// </summary> public class AdminActionMethod : Attribute { /// &l asp.net mvc ef mvc EF CodeFirst List asp.net asp asp.net asp.net mvc ASP.NET MVC概念: ASP.NET MVC 是微软官方提供的MVC模式,说白了,ASP.NET MVC知识开发ASP.NET Web 应用程序的一个框架而已,而且其只是一个表示层框架,同时也是微软的第一个开源项目。 使用ASP.NET开发web应用程序方式 01.WebForm方式 02.Asp.Net MVC 方式 注意:WebForm方式和Asp.Net MVC方式是使用 asp.net asp 测试 数据库 Javascript ViewUI asp.net mvc 发布 asp.net mvc view 1. 介绍 先来简单的介绍一下ASP.NET是一个使用HTML、CSS、Javascript和服务器脚本创建网页和网站的开发框架。ASP.NET支持三种不同的开发模式:1、Web Pages:(Web 页面) 2、MVC:(Model View Controller 模型-视图-控制器) 3、Web Forms:(Web 窗体) MVC 模式定义 Web 应用程序带有三个逻辑层: 1、业务层(模型 asp.net mvc 发布 mvc MVC 业务逻辑 应用程序 asp.net mvc 结构 asp.net mvc core ASP.NET 是一个使用 HTML、CSS、Javascript 和服务器脚本创建网页和网站的开发框架。ASP.NET 支持三种不同的开发模式:Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体)。本教程介绍 MVC。Web PagesMVCWeb FormsMVC 编程模式MVC 是三种 ASP.NET asp.net mvc 结构 mvc asp.net 前端 应用程序 asp.net mvc 性能 asp.net mvc教程 ASP.NET MVC编写的程序需要部署到IIS上面才能进行访问,部署方式分为两种。一、直接用源代码部署第一种方式可以直接使用源代码进行部署。部署步骤:1、新建网站在IIS里面选择网站,然后右键选择“添加网站”然后打开“添加网站”对话框:2、配置添加网站界面配置如下:然后点击确定,这时在左侧的网站列表中就可以看到新添加的网站。3、浏览在左侧列表选中要浏览的网站,然后点击右侧的浏览,如图所示:然后浏 asp.net mvc 性能 测试 右键 IIS html asp.net mvc发布 asp.net mvc教程 1.首先创建一个mvc项目点击确定选择一个空的模板,勾选MVC那么一个基本的mvc项目已经创建此时可以点击Debug进行调试,但是会出现如下界面因为此时还没有创建任何控制器和视图添加控制器点击添加后给控制器命名为HomeController打开Home控制器,发现里面有一个已经生成的默认的Index的返回视图创建index视图有两种方式:第一种:直接在controller中的index上右键选择添 asp.net mvc发布 css bootstrap 表单 asp.net mvc性能 asp.net mvc api 1. 安装Microsoft .net FrameWork 4.0安装包;2. 安装ASP.NET MVC 3+; --- 此步骤也可以省略,在你的项目直接用Nuget引用所有MVC相关的DLL。3. 在IIS中发布网站,创建虚拟目录,ASP.NET版本选择4.0.30196;--- 或者在VS中设置网站目标框架为版本4 asp.net mvc性能 Web System MVC ASP.NET MVC 入门6、TempData 本系列文章基于ASP.NET MVC Preview5.ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个控制器Action间传递临时的数据或者给View传递一些临时的数据,相信大家都看过“在ASP.NET页面间传值的方法有哪几种”这个面试题,在ASP.NET MVC中TempData的就是其中的一种传值方法。TempData默认是使用Session... 数据 mvc asp.net 提示信息 自定义 asp.net mvc 异步 asp.net mvc运行原理 ASP.NET MVC由以下两个核心组成部分构成:一个名为UrlRoutingModule的自定义HttpModule,用来解析Controller与Action名称;一个名为MvcHandler的自定义HttpHandler,用来实现对Controller的激活和Action的执行;!!阅读本文前请先弄明白asp.net执行的流程及httpmodule与httphandler的作用。下面是进行路 asp.net mvc 异步 MVC ASP 自定义 asp.net mvc 性能测试 asp.net mvc ef 学习ASP.NET MVC应用程序与ASP.NET WebForms应用程序的区别。学习当你构建ASP.NET MVC 应用程序的时候如何做选择。 Model-View-Controller (MVC)构造模式把应用程序分成了3个 asp.net mvc 性能测试 测试 数据库 ui 应用程序 asp.net mvc 框架 asp.net mvc 前端框架 MVC(模型—视图—控制器)结构模式把一个应用程序拆分成三个主要组件:模型、视图和控制器。在创建基于MVC框架的Web应用程序时,你可以把ASP.NET MVC框架作为ASP.NET Web表单模式方案的一种重要候选。较之于基于Web表单的应用程序,ASP.NET MVC框架是一个轻量级的、测试性强的描述框架,它能够与现有ASP.NET特征(例如母版页面和基于成员身份的认证)紧密集成。MVC框架定 asp.net mvc 框架 应用程序 MVC ASP