官方参考资料在这里:https://msdn.microsoft.com/en-us/library/azure/dn722415.aspx,本文放一些重点及遇到的坑的解决办法。

身份验证

不是说,我们把subscriptionID和本地的cert匹配一下就OK了,还需要在portal中配置,允许我们的APP访问这个portal。主要参考这里:Add an application to Azure AD。要注意的是,上文是4月15日的版本,但是现在(8月18日)的版本,已经不是在Set up directory这个TAB页上,而是在Develop Applications这个TAB上。

在OAuth的回调页面中,不是两个URL,而是变成了一个,这里我写了http://localhost/。七月的,配置permission的时候,照做即可,别忘记点下面的保存。

添加引用

在VS工程里面,按照上面指南,management libraries是没问题的。但是注意第二个,AD auth的,搜索之后找到的,不是原文中的Active Directory Authentication Library,而是Microsoft.IdentityModel.Clients.ActiveDirectory(我擦,整天改名字,好玩吗?!)

修改配置

按照指南,把那一坨appSettings内容添加到app.config文件中,然后把OAUTH2对应的endpoint的GUID替换到app.config中的id-of-tenent。在另一个portal界面中,把id-of-client的值也替换到app.config文件中。

截止到step7为止,替换redirectUri遗迹subScriptionId。step8及之后,暂时不修改。

Token

按照指南做即可。此时就可以做验证了,在你的入口方法中调用GetAuthorizationHeader,如果能弹出来微软的ADFS认证窗口,并且你输入你自己的azure的管理员账号与密码,验证成功后,那么就没问题了。

这时,可以初步验证我们的代码了:

        private void button1_Click(object sender, EventArgs e)
{
var token = GetAuthorizationHeader();
var credential = new TokenCloudCredentials(ConfigurationManager.AppSettings["subscriptionId"], token); var computeClient = new Microsoft.WindowsAzure.Management.Compute.ComputeManagementClient(credential);
var services = computeClient.HostedServices.List().HostedServices;
}

C#访问Azure的资源的更多相关文章

  1. webpy 访问局域网共享资源

    遇到一个问题: 在python shell 中调用局域网远程共享文件时,没问题.但是在webpy中调用时,报错:没有权限.那一定是apache设置问题. 网上找不到类似的方法,于是换个思路搜了一下“p ...

  2. 使用HttpClient访问被保护资源

    下面的Android应用需要向指定页面发送请求,但该页面并不是一个简单的页面,只有当用户已经登录,而且登录用户的用户名是crazyit.org时才可访问该页面.如果使用HTTPURLConnectio ...

  3. 转: android之虚拟机访问tomcat服务器资源

    最近在研究Android虚拟机访问tomcat服务器资源,所以找了个时间写下这篇博客和大家分享一下心得. 其实Android虚拟机访问tomcat服务器非常的简单,只要不要弄错IP地址就可以访问tom ...

  4. azure跨域问题(访问azure存储账户数据,blob)

    访问azure存储账户数据报错:405错误 解决方案 打开访问的存储账户--->CORS--->Blob服务 全部填写*就可以了,点击“保存”即可. iframe就可以展示blob中的pd ...

  5. Service系统服务(六):rsync基本用法、rsync+SSH同步、配置rsync服务端、访问rsync共享资源、使用inotifywait工具、配置Web镜像同步、配置并验证Split分离解析

    一.rsync基本用法 目标: 本例要求掌握远程同步的基本操作,使用rsync命令完成下列任务: 1> 将目录 /boot 同步到目录 /todir 下   2> 将目录 /boot 下的 ...

  6. tomcat访问所有的资源,都是用Servlet来实现的

    感谢大佬:https://www.zhihu.com/question/57400909 tomcat访问所有的资源,都是用Servlet来实现的. 在Tomcat看来,资源分3种 静态资源,如css ...

  7. 解决OS X系统连接VPN后无法访问内网资源的问题

    该问题是第一次使用OS X系统连接VPN遇到的问题,现象是连接VPN成功,但无法访问公司的内网资源. 主要原因还是VPN设置上的问题,在系统偏好设置中打开VPN连接,里面有个高级设置,如图: 点击高级 ...

  8. presto访问 Azure blob storage

    当集群使用Azure Blog Storage时,prestoDB无法获取返回结果,在此记录下 如下,hive里面的两个表,一个使用的是本地的hdfs,一个是使用 azure blob storage ...

  9. DW(六):polybase访问Azure Blob Storage

    目录: 连接hadoop配置语法 配置hadoop连接 Pushdown配置 Create external tables for Azure blob storage 连接hadoop配置语法: g ...

随机推荐

  1. MYSQL的JOB

    要让JOB顺利运行,必须要打开MYSQL的定时器. -- 查看是否开启定时器 SHOW VARIABLES LIKE '%sche%'; -- 开启定时器 0:off 1:on -- 这个需要最高权限 ...

  2. Python引用模块和查找模块路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于"模块"这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译 ...

  3. Qt model和tableview的使用

    QT中的model和tableview都是采用index索引   index含有两个成员变量一个是row   一个是column  对应该索引的行号.列号 model提供数据    view提供视图  ...

  4. 虚拟机centos6.5 --开放端口

    系统:centos6.5 1.查看端口开放情况 /etc/init.d/iptables status 2.开启端口 /sbin/iptables -I INPUT -p tcp --dport -j ...

  5. 在VMware上安装CentOS-6.5 minimal - 安装VMware Tools

    由于CentOS-6.5 minimal很多工具都默认没有安装,安装VMwareTools需要用到Perl,所以老伯建议先配置好网络再接着安装. 网络配置方法可以参考在VMware上安装CentOS- ...

  6. Jetty使用攻略

    jetty作为一款小型的web容器用处很大,因为其小巧强大,经常作为嵌入式的组件处理http交互. Jetty 作为一个独立的 Servlet 引擎可以独立提供 Web 服务,但是它也可以与其他 We ...

  7. web测试方法

    首先互联网B/S系统一般分为三层,即表示层.业务逻辑层.数据层,下面是我整理的关于web的测试方法. 表示层 一.功能测试 1.链接测试 确认每个链接有效且正确跳转 2.表单测试 确认表单能正常提交, ...

  8. 北理工c语言期末考试

    1 给定一个区间,输出其中前半部分数字之和等于后半部分数字之和的数,没有则输出No output.(15分) 题目内容: 给定一个区间,输出其中前半部分数字之和等于后半部分数字之和的数,没有则输出No ...

  9. POJ3636Nested Dolls[DP LIS]

    Nested Dolls Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8323   Accepted: 2262 Desc ...

  10. MVC code first数据迁移 转

    coptto:http://www.cnblogs.com/miro/p/4164076.html 本篇是相对独立的一篇,主要讲解不丢失数据进行数据库结构升级. 前面我们讲解EF功能时(见第三篇文章) ...