2

我尝试使用可在https://marketplace.visualstudio.com/items 下载的 CRM SDK 模板(添加到现有项目)中的 Xrm.Tooling.CrmConnectControl 登录到启用多因素身份验证 (MFA) 的 365 在线环境? itemName=DynamicsCRMPG.MicrosoftDynamicsCRMSDKTemplates和最新的 SDK SampleCode 中提供的名为 QuickStartXRMToolingWPFClient 的模板。在这两种情况下,我都没有成功登录到 MFA 环境。当然,我尝试使用上述两种解决方案登录的所有非 MFA 环境都按预期工作。

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

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

4

1 回答 1

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 完全一样

于 2017-07-21T15:35:16.877 回答