使用Xrm.Tooling.CrmConnectControl进行多重身份验证

时间:2017-07-21 14:15:54

标签: dynamics-crm multi-factor

我已尝试使用可从https://marketplace.visualstudio.com/items?itemName=DynamicsCRMPG.MicrosoftDynamicsCRMSDKTemplates下载的CRM SDK模板(添加到现有项目)中的Xrm.Tooling.CrmConnectControl和提供的一个登录到启用了Multi Factor Authentification(MFA)的365 Online环境在最新的SDK SampleCode中,名为QuickStartXRMToolingWPFClient。在任何一种情况下,我都没有成功登录MFA环境。当然,我试图登录的所有非MFA环境都按照预期的方式使用所描述的解决方案。

在插件注册工具v.8.2.0.8411中,可以通过在定位部署类型Office 365时将用户名和密码都留空来登录启用MFA的环境。但是,当使用模板/ SDK中的CrmConnectControl离开用户时名称和密码空白导致错误消息"需要用户名。"或者"需要密码。"。

是否有人知道是否有办法使用Xrm.Tooling.CrmConnectControl以与在插件注册工具中完成相同的方式对MFA环境进行身份验证?

1 个答案:

答案 0 :(得分:1)

解决方案适用于最新的Dynamics 365 SDK中的SampleCode。

首先,我看到此QuickStartXRMToolingWPFClient源代码使用过时的SDK - 转到nuget包管理器并将所有Microsoft.CrmSdk软件包更新到最新版本(不要自己更新Microsoft.IdentityModel - 它将作为SDK程序集的依赖项更新为正确的版本。

现在,在CrmLogin.xaml.cs内你有一个函数Window_Loaded和CrmConnectionManager初始化如下:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    //some code
    mgr = new CrmConnectionManager();
    mgr.ParentControl = CrmLoginCtrl;
    mgr.UseUserLocalDirectoryForConfigStore = true;
    //some code
}

您必须添加以下行:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    //some code
    mgr = new CrmConnectionManager();
    mgr.ParentControl = CrmLoginCtrl;
    mgr.UseUserLocalDirectoryForConfigStore = true;
    mgr.ClientId = "2ad88395-b77d-4561-9441-d0e40824f9bc";
    mgr.RedirectUri = new Uri("app://5d3e90d6-aa8e-48a8-8f2c-58b45cc67315");
    //some code
}

重建,它将完全像PluginRegistrationTool

一样工作
相关问题