摘要: 本人微信和易信公衆號: 微軟動態CRM專家羅勇 ,回覆272或者20180616可方便獲取本文,同時能夠在第一間獲得我發佈的最新的博文信息,follow me!個人網站是 www.luoyong.me 。html
人不學不知道,我之前也不知道Dynamics 365 Customer Engagement (就是Dynamics 365的CRM部分功能)中還有非交互式這種帳號,今天咱們一塊兒來看看吧。api
首先咱們在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 管理員尋求幫助。app
咱們如今去Office 365管理門戶中將這個用戶的許可取消,待到【帳單】 > 【許可證】該用戶使用的許可證類型分配數量增長1後,咱們再去Dynamics 365 Customer Engagement中查看這個用戶,你會發現該用戶並無被禁用,狀態仍是已啓用。如果普通的用戶帳戶,取消許可後該帳戶的狀態將會變成禁用,不能使用。網站
不能經過瀏覽器登陸Dynamics 365 Customer Engagement,可是它可以經過SDK的方式來作操做。我這裏用簡單的代碼來登陸並執行消息是能夠的:this
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();
這是程序運行後的截圖:spa
可是,若是根據我前面的文章 控制檯程序(C#)不彈出認證窗口鏈接到Dynamics CRM Online的Web API 來作的話會報錯以下,由於這篇文章使用非交互式帳號登陸是不行的。3d
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個非交互式帳號。