Dynamics crm 通过Xrm.Tooling.CrmConnectControl使用多因素身份验证

Dynamics crm 通过Xrm.Tooling.CrmConnectControl使用多因素身份验证,dynamics-crm,multi-factor-authentication,Dynamics Crm,Multi Factor Authentication,我尝试使用可在下载的CRM SDK模板(添加到现有项目中)中的Xrm.Tooling.CrmConnectControl和最新SDK示例代码QuickStartXRMToolingWPFClient中提供的Xrm.Tooling.CrmConnectControl登录到启用多因素身份验证(MFA)的365在线环境。在这两种情况下,我都没有成功登录到MFA环境。当然,我尝试使用所描述的两种解决方案按预期登录works的所有非MFA环境 在插件注册工具v.8.2.0.8411中,当以部署类型Offi

我尝试使用可在下载的CRM SDK模板(添加到现有项目中)中的Xrm.Tooling.CrmConnectControl和最新SDK示例代码QuickStartXRMToolingWPFClient中提供的Xrm.Tooling.CrmConnectControl登录到启用多因素身份验证(MFA)的365在线环境。在这两种情况下,我都没有成功登录到MFA环境。当然,我尝试使用所描述的两种解决方案按预期登录works的所有非MFA环境

在插件注册工具v.8.2.0.8411中,当以部署类型Office 365为目标时,可以将用户名和密码保留为空,从而登录到启用MFA的环境。但是,当从模板/SDK使用CrmConnectControl时,将用户名和密码留空会导致错误消息“需要用户名”。或者“需要密码”


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

该解决方案适用于最新的Dynamics 365 SDK中的示例代码

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

现在,在
CrmLogin.xaml.cs
中,您加载了一个函数窗口,并初始化了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一样工作

棒极了,就像一个魔咒。谢谢你的帮助!感谢您将此内容包括在内,它刚刚解决了我的问题“在插件注册工具v.8.2.0.8411中,当以部署类型Office 365为目标时,通过将用户名和密码保留为空,可以登录到启用MFA的环境”