摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复272或者20180616可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me 。

人不学不知道,我以前也不知道Dynamics 365 Customer Engagement (就是Dynamics 365的CRM部分功能)中还有非交互式这种账号,今天我们一起来看看吧。

首先我们在Office 365管理门户( https://portal.office.com )中像建立普通用户一样建立一个账户,给他授予一个许可证,这样他才会同步到Dynamics 365 Customer Engagement中去。

一会儿你在Office 365管理门户的【账单】 > 【许可证】中就会看到你刚才授予的这种许可证的分配数量增加了1,也就是占用了一个许可。在Dynamics 365 Customer Engagement中也可以看到这个用户了。我们先为它分派一个角色,我这里分派为系统管理员,然后我用这个账户使用浏览器登录Dynamics 365 Customer Engagement,你可以看到是可以登录的。

现在我们在Dynamics 365 Customer Engagement > 【设置】 > 【安全性】 > 【用户】中将这个用户账号的【访问模式】设置为【非交互式】,然后保存。

然后我在用这个账户使用浏览器来登录Dynamics 365 Customer Engagement,登录后提示如下:您对此组织仅具有 SDK 访问权限。您没有查看、创建、编辑或删除数据的必要权限。请联系您的 Microsoft Dynamics 365 管理员寻求帮助。

我们现在去Office 365管理门户中将这个用户的许可取消,待到【账单】 > 【许可证】该用户使用的许可证类型分配数量增加1后,我们再去Dynamics 365 Customer Engagement中查看这个用户,你会发现该用户并没有被禁用,状态还是已启用。若是普通的用户账户,取消许可后该账户的状态将会变成禁用,不能使用。

不能通过浏览器登录Dynamics 365 Customer Engagement,但是它能够通过SDK的方式来做操作。我这里用简单的代码来登录并执行消息是可以的:

                IServiceManagement<IOrganizationService> orgServiceManagement = ServiceConfigurationFactory.CreateManagement<IOrganizationService>(new Uri("https://luoyongdemo.api.crm5.dynamics.com/XRMServices/2011/Organization.svc"));
AuthenticationCredentials authCredentials = new AuthenticationCredentials();
authCredentials.ClientCredentials.UserName.UserName = "noninteractiveuser@luoyongdemo.onmicrosoft.com";
authCredentials.ClientCredentials.UserName.Password = "Pass@w0rd1";
using (OrganizationServiceProxy organizationProxy = GetProxy<IOrganizationService, OrganizationServiceProxy>(orgServiceManagement, authCredentials))
{
WhoAmIRequest whoAmIReq = new WhoAmIRequest();
var whoAmIRep = organizationProxy.Execute(whoAmIReq) as WhoAmIResponse;
var userEntity = organizationProxy.Retrieve("systemuser", whoAmIRep.UserId, new ColumnSet("fullname"));
Console.WriteLine(string.Format("登录成功,欢迎{0},继续操作请输入y!", userEntity.GetAttributeValue<string>("fullname")));
}
Console.WriteLine("程序运行成功!");
Console.ReadKey();

这是程序运行后的截图:

但是,如果根据我前面的文章 控制台程序(C#)不弹出认证窗口连接到Dynamics CRM Online的Web API 来做的话会报错如下,因为这篇文章使用非交互式账号登录是不行的。

AADSTS65001: The user or administrator has not consented to use the application with ID '7a092321-a423-4dc0-b1b3-9801898dec32' named 'LuoYong Demo'. Send an interactive authorization request for this user and resource.

通过前面的演示,我觉得可以总结下:

1. 可以节省许可费用,一个许可每年都要收钱,节约一个是一个,为客户着想省钱,提升项目的投入产出比。

2. 因为非交互式账号不能通过浏览器登录Dynamics 365 Customer Engagement,相对更安全一些。拿到这个账号的密码,没有Dynamics  365 Customer Engagement开发能力的也做不了什么。

3. 此类账户专门为Dynamics 365 Customer Engagement 与其它系统,如ERP等集成使用,妥妥的。

当然有一个值得注意的地方就是一个CRM Online实例最多只能允许存在5个非交互式账号。

Dynamics 365中的非交互式账号(Non-interactive User)介绍的更多相关文章

  1. 自定义工作流活动报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复265或者20170926可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  2. 将Dynamics 365中的用户及其角色、角色导出到Excel中

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复240或者20161204可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  3. Dynamics 365中的应用程序介绍

    本人微信和易信公众号:微软动态CRM专家罗勇 ,回复275或者20180630可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  4. Dynamics 365中配置和使用文件夹级别的跟踪(folder-level tracking)

    本人微信和易信公众号:微软动态CRM专家罗勇 ,回复274或者20180630可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  5. Dynamics 365工作流报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复265或者20170926可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  6. Dynamics 365中开发和注册插件介绍

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  7. Dynamics 365中部分账号使用系统明显缓慢怎么办?先这么干!

    摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复263或者20170828可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...

  8. Dynamics 365中的Client API form context (formContext)

    适用于Dynamics 365 for Customer Engagement apps 9.x版本. 本文是一篇翻译,原文来源是微软官方文档. 本文链接:https://www.cnblogs.co ...

  9. Dynamics 365中自定义工作流活动获取的上下文分析及注意事项

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复244或者20170306可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

随机推荐

  1. JavaScript中如何检测一个变量是一个String类型?

    typeof x === "string" typeof(x) === "string' // 小写 x.constructor === String // 大写类型 同 ...

  2. 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准

    一.H264 概述 H.264,通常也被称之为H.264/AVC(或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC) 1. H.264视频编解码的意义 H.264的出现就是为了创 ...

  3. qq跳转

    给<a href="http://wpa.qq.com/msgrd?v=3&uin=1061214467&site=qq&menu=yes">& ...

  4. Java运行原理及内存分析

    Java运行原理及内存分析 一.Java运行原理 二.Java内存分析

  5. Vue中实现一个无限加载列表

    参考 https://www.jianshu.com/p/0a3aebd63a14 一个需要判断的地方就是加载中再次触发滚动的时候,不要获取数据. <!DOCTYPE html> < ...

  6. 关于CGI 和 PHP-FPM需要弄清的

    https://blog.csdn.net/gao_yu_long/article/details/79390510 补充一点: 如果php-cgi -b 127.0.0.1:6999,则6999端口 ...

  7. 13.Django1.11.6文档

    第一步 入门 检查版本 python -m django --version 创建第一个项目 django-admin startproject mysite 运行 python manage.py ...

  8. 用了 HTTPS 还不安全,问题就出在低版本 TLS 上

    HTTPS 加密时代已经来临,近两年,Google.Baidu.Facebook 等互联网巨头,不谋而合地开始大力推行 HTTPS, 2018 年 7 月 25 日,Chrome 68 上线,所有 H ...

  9. 从源码分析如何优雅的使用 Kafka 生产者

    前言 在上文 设计一个百万级的消息推送系统 中提到消息流转采用的是 Kafka 作为中间件. 其中有朋友咨询在大量消息的情况下 Kakfa 是如何保证消息的高效及一致性呢? 正好以这个问题结合 Kak ...

  10. 前端打包成桌面应用、以及chrome扩展

    前段时间在利用工作之余开发了tomato timer这个蕃茄钟,然后部署到github.io上,由于greatway太厉害,偶尔会有打不开的情况.上周末对比做了扩展和改进,使其成为chrome的插件, ...