在上篇演示了在html页面中通过调用online的OAuth身份验证后再通过web api取10条客户数据并展示,本篇继续讲述如何在server-side程序中调用online的OAuth认证再通过web api取客户数据。

azure的应用程序设置本篇就不做过多说明,可参照上篇,在设置应用程序的类型时有些区别,这里选择的是本机客户端应用程序。

贴上源代码

                string resource = "https://skysoft002.crm5.dynamics.com";
                string clientId = "1e076b65-327d-4244-b9c6-1e0d120eb667";

                AuthenticationContext authContext =
                    new AuthenticationContext("https://login.windows.net/common", false);

                AuthenticationResult result = authContext.AcquireToken(resource, clientId,
                    new UserCredential(username, pwd)); ;
                using (HttpClient httpClient = new HttpClient())
                {
                    httpClient.Timeout = new TimeSpan(0, 2, 0);  // 2 minutes
                    httpClient.DefaultRequestHeaders.Authorization =
                    new AuthenticationHeaderValue("Bearer", result.AccessToken);
                    httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
                    httpClient.DefaultRequestHeaders.Add("OData-Version", "4.0");
                    HttpResponseMessage response = httpClient.GetAsync(
                    "https://skysoft002.crm5.dynamics.com/api/data/v8.2/accounts?$top=1").Result;
                    String returnvalue = response.Content.ReadAsStringAsync().Result;
                }

这里需要引用命名空间Microsoft.IdentityModel.Clients.ActiveDirectory,直接在nuget中下载即可,但要注意的是3.0版本以后AuthenticationContext已经没有AcquireToken这个方法了,所以如果你直接下载的最新版再引用SDK中的代码时会报错,你下载3.0以下版本就可以了。

最后F5运行代码,身份验证能运行过去并且查询出客户信息。

本文参考文献:http://www.inogic.com/blog/2016/03/programming-using-webapi-through-c-in-dynamics-crm-2016/

Dynamics 365Online Server-Side OAuth身份认证的更多相关文章

  1. Spark SQL Thrift Server 配置 Kerberos身份认证和权限管理

    转载请注明出处:http://www.cnblogs.com/xiaodf/ 之前的博客介绍了通过Kerberos + Sentry的方式实现了hive server2的身份认证和权限管理功能,本文主 ...

  2. 配置ArcGIS Server使用LDAP身份认证

    1.登陆ArcGIS Server Manager,修改站点的安全设置.选择用户和角色来自现有企业系统(LDAP或Windows域). 2.选择LDAP存储类型. 3.填写LDAP用户存储连接信息.主 ...

  3. WebApi的创建,部署,Oauth身份认证(一)

    1.首先创建一个项目 2.选择Web API 3.创建一个空的控制器 4.控制器名称为MyApiController using System; using System.Collections.Ge ...

  4. .Net Core身份认证:IdentityServer4实现OAuth 2.0 客户端模式 - 简书

    原文:.Net Core身份认证:IdentityServer4实现OAuth 2.0 客户端模式 - 简书 一.客户端模式介绍 客户端模式(Client Credentials Grant)是指客户 ...

  5. SQL Server 数据库身份认证以及包含数据库

    首先分为SQL Server 认证与Windows 身份认证. SQL Server 认证可以运行以下语句来查询 select * from sys.sql_logins 管理员可以直接修改密码,但无 ...

  6. Dynamics 365Online 使用adal.js注册和配置SimpleSPA应用程序

    本篇是基于dynamics 365online撰写,本文中使用的365online及azure均为试用版,因为online在国内还没落地,所以我申请的是新加坡版,online的申请方式可见我之前的博文 ...

  7. [认证授权] 4.OIDC(OpenId Connect)身份认证授权(核心部分)

    0 目录 认证授权系列:http://www.cnblogs.com/linianhui/category/929878.html 1 什么是OIDC? 看一下官方的介绍(http://openid. ...

  8. ASP.NET Core的身份认证框架IdentityServer4(3)-术语的解释

    IdentityServer4 术语 IdentityServer4的规范.文档和对象模型使用了一些你应该了解的术语. 身份认证服务器(IdentityServer) IdentityServer是一 ...

  9. [认证授权] 4.OIDC(OpenId Connect)身份认证(核心部分)

    1 什么是OIDC? 看一下官方的介绍(http://openid.net/connect/): OpenID Connect 1.0 is a simple identity layer on to ...

随机推荐

  1. POJ 2562

    #include<iostream> #include<algorithm> #define MAXN 15 using namespace std; //int rec[MA ...

  2. hdu5745--La Vie en rose (DP+bitset)

    好题,学到新姿势! 题意:给两个字符串 a 和 b ,b可以进行变换,规则是可以任意交换相邻两个字符的位置,但是不可以有交叉(例如3和4交换,5和6交换 互不影响,但是2和3,3和4就不可以).求a中 ...

  3. (转)Cognos的下载地址分享

    原文:https://blog.csdn.net/Wikey_Zhang/article/details/76138965 刚开始接触Cognos,发现Cognos真是一款挺不错的报表工具,先分享一下 ...

  4. vue2打包时内存溢出解决方案

    vue项目完成时,若项目过大,就会出现内存溢出的问题,导致vue打包不成功 错误截图 解决方案 在依赖package.json中修改build为 "build":"nod ...

  5. 再谈C#委托与事件

    之前写过一篇关于C#委托与事件的文章(见<C#委托和事件例析>),不过还是收到一些网友的提问.所以,今天再换另一个角度来详解一下这个问题. 一.在控制台下使用委托和事件 我们都知道,C#中 ...

  6. (转载)Centos下Elasticsearch安装详细教程

    原文地址:http://www.cnblogs.com/sunny1009/articles/7874251.html Centos下Elasticsearch安装详细教程 1.Elasticsear ...

  7. C# 多线程之List的线程安全问题

    网上关于List的线程安全问题将的很少,所以自己实验了一把,发现确实是线程不安全的.所以当你在进行多线程编程中使用了共享的List集合,必须对其进行线程安全处理. List的Add方法是线程不安全的, ...

  8. CentOS 6.5 网络服务器功能的实现①:运用bind搭建基本的DNS服务器

    何谓DNS服务?简而言之,DNS服务在互联网中可以实现域名解析(把域名转换成网络可以识别的IP地址). 名词解释①:正向解析:域名解析IP地址:反向解析:IP地址解析域名. DNS服务的正/反向区域解 ...

  9. CentOS安装PHP7+Nginx+MySQL

    本文属于动手搭建PHP开发环境的一部分,更多点击链接查看. 本文以centos6为例.命令部分均省略sudo命令. 安装PHP 下载 http://cn2.php.net/distributions/ ...

  10. Spring整合Mybatis原理简单分析

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" ...