下面我们来创建一个MVC 5.0的ASP.Net程序,并且将它部署到Azure Web Site上

通过Visual Studio 2015创建Web Project 在选择ASP.net模板的地方,更改验证方式

 

在选择验证方式时选择“Work And School Accounts”,在文本框中填入

1.你公司的ADFS的Metadata的地址,这个地址可以找ADFS的管理员要到,通常如以下形式: https://{youradfs.yourcompany.com}/federationmetadata/2007-06/federationmetadata.xml

2.填入你的WEB应用的URI,因为ADFS是双向验证的,这个URI要跟上一步《为Azure Web Site 添加ADFS验证支持之一 设置ADFS的信任关系》里配置的Url一致

Web Project创建完成了,如果你的ADFS发布到外网的SSL证书是有受信任的根证书颁发的,这时候只需要将WEB Project发布到Azure WEB Site上就搞定,但是很多时候企业的ADFS发布的SSL证书是自己的AD颁发的,Azure WebSite上并不能验证,这时候就需要在你的代码里面修改一下。 打开App_Start/Startup.Auth.cs将默认的代码,下面添加一行BackchannelCertificaeValidator=null

  1. public void ConfigureAuth(IAppBuilder app)
  2. {
  3. app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
  4.  
  5. app.UseCookieAuthentication(new CookieAuthenticationOptions());
  6.  
  7. app.UseWsFederationAuthentication(
  8. new WsFederationAuthenticationOptions
  9. {
  10. Wtrealm = realm,
  11. MetadataAddress = adfsMetadata,
  12. BackchannelCertificateValidator=null,
  13. });
  14. }

打开Global.asax.cs添加以下代码:

 

  1. protected void Application_Start()
  2. {
  3. AreaRegistration.RegisterAllAreas();
  4. FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
  5. RouteConfig.RegisterRoutes(RouteTable.Routes);
  6. BundleConfig.RegisterBundles(BundleTable.Bundles);
  7. ServicePointManager.ServerCertificateValidationCallback = delegate
  8. {
  9. return true;
  10. };
  11. }

添加完代码之后就可以将Web Project发布到Azure Web Site上面了。

这时候我们用浏览器打开发布的Web Site地址,它就会自动跳转到ADFS的登录界面

在这里我们就可以用企业里面的AD账号登录我们的Web Site了。

 

 

这里有老外的篇Blog写的更加详细一些,英文好的同学可以参考一下:

http://www.tuicool.com/articles/NrMZ7v2

为Azure Web Site 添加ADFS验证支持之二 在代码里使用ADFS的更多相关文章

  1. 为Azure Web Site 添加ADFS验证支持之一 设置ADFS的信任关系

    很多时候企业开发的应用都会通过AD(Active Directory)进行验证用户名密码的,在企业里面统一一个AD来进行账号密码管理也是一个很好的实践.当企业打算将一个应用迁移到Azure的时候,使用 ...

  2. Microsoft Azure Web Sites应用与实践【2】—— 通过本地IIS 远程管理Microsoft Azure Web Site

    Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...

  3. Windows Azure Web Site (7) Web Site配置

    <Windows Azure Platform 系列文章目录> 在上一章内容中,我们已经部署了Azure WebSite.我们可以在Web Site配置页面进行配置.如下图: 另外,我们还 ...

  4. Windows Azure Web Site (10) Web Site测试环境

    <Windows Azure Platform 系列文章目录> 我们知道,在使用Azure Cloud Service的时候,会有2个不同的环境,称为Production环境和Stagin ...

  5. Windows Azure Web Site (16) Azure Web Site HTTPS

    <Windows Azure Platform 系列文章目录> 我们在使用微软云Azure Web App的时候,会使用微软的二级域名:http://xxx.chinacloudsites ...

  6. Windows Azure Web Site (17) Azure Web Site 固定公网IP地址

    <Windows Azure Platform 系列文章目录> 在之前的文档中,笔者介绍了Azure Web Site是一个多租户的环境,每个部署单元有一个可以通过Internet访问的入 ...

  7. [New Portal]Windows Azure Web Site (3) 创建Web Site和云端数据库

    <Windows Azure Platform 系列文章目录> 在前一章的内容里,我介绍了使用Windows Azure Management Portal创建Web Site.本章,我将 ...

  8. Azure Web Site 之 利用Azure Web site 发布网站

    由于经常混迹于MSDN Azure论坛,少不了和一些外国朋友打交道.有的时候觉得还是有一些东西可以写出来与外国友人们分享下的, 所以就用一个开源项目建了一个英文blog项目. 在发布的时候,首选的就是 ...

  9. Windows Azure Web Site (6) 使用FTP发布Azure Web Site

    <Windows Azure Platform 系列文章目录> 笔者在之前的文章中介绍的都是使用IDE,也就是Visual Studio,将本地的aspx发布到Azure Web Site ...

随机推荐

  1. 微软职位内部推荐-Senior Software Engineer II-Sharepoint

    微软近期Open的职位: SharePoint is a multi-billion dollar enterprise business that has grown from an on-prem ...

  2. ASP.NET MVC - 启动创建项目,未能加载错误

    VS2012以常规方式创建一ASP.NET MVC internet 项目.创建后F5启动项目,遇一错误: 未能加载文件或程序集“MySql.Web.v20, Version=6.9.4.0, Cul ...

  3. CSS3在线实战

    作者声明:本博客中所写的文章,都是博主自学过程的笔记,参考了很多的学习资料,学习资料和笔记会注明出处,所有的内容都以交流学习为主.有不正确的地方,欢迎批评指正. 本节课视频网站:https://www ...

  4. Longge's problem(欧拉函数应用)

    Description Longge is good at mathematics and he likes to think about hard mathematical problems whi ...

  5. [数位DP]把枚举变成递推(未完)

    动态规划(DP)是个很玄学的东西 数位DP实际上 就是把数字上的枚举变成按位的递推 有伪代码 for i =这一位起始值 i<=这一位终止值 dp[这一位][i]+=dp[这一位-1][i]+- ...

  6. 模拟登入教务处(header)

    import HTMLParser import urlparse import urllib import urllib2 import cookielib import string import ...

  7. OA--对于每个form表单(<s:iterator>生成)的处理

    由于是后台传过来的,我们不知道form 有几个 也不能指定form的id和name,(其实也可以就是可能会冲突我们还是用下面讲的方法把) 之前有想过 对于每个form 里面都有一些参数,举个例子 项目 ...

  8. “献给爱读书的中国人”——Amazon Kindle软件测评

    “献给爱读书的中国人” ——Amazon Kindle软件测评 前不久我在网上看到了一篇印度工程师旅居上海时发表的一篇文章,题目叫做<令人忧虑:不阅读的中国人>,大致讲述的是世界上人们在飞 ...

  9. Oracle数据库表空间常用操作

    1. 查看所有表空间大小 SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tables ...

  10. java内存加载机制

    什么是java类加载? 类加载是指将.class类中的二进制数据存放到内存中,会在内存中的推中建立一个java.lang.String的引用对象来存放方法区的数据结构,而类中的数据会放到方法区中 类加 ...