【问题标题】:Using Multi Factor authentication with Xrm.Tooling.CrmConnectControl将多因素身份验证与 Xrm.Tooling.CrmConnectControl 一起使用
【发布时间】:2017-07-21 14:15:53
【问题描述】:

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

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

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

【问题讨论】:

  • 感谢您提供此信息,它刚刚解决了我的问题“在插件注册工具 v.8.2.0.8411 中,可以通过在定位时将用户名和密码都留空来登录启用 MFA 的环境部署类型 Office 365"

标签: dynamics-crm multi-factor-authentication


【解决方案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 一样工作

【讨论】:

  • 太棒了,就像一个魅力。感谢您的帮助!
  • ClientId 和 RedirectUri 中的 Guid 是什么?为什么我们不在插件注册工具配置中指定它们?
猜你喜欢
  • 2014-05-31
  • 2013-08-31
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 2017-12-16
  • 2013-02-10
  • 2020-03-12
  • 2018-05-15
相关资源
最近更新 更多