【问题标题】:CRM 2013 - Plugin Execution (Post Operation) What happens and when?CRM 2013 - 插件执行(操作后)会发生什么,何时发生?
【发布时间】:2014-10-26 19:08:36
【问题描述】:

我有一个系统配置实体,用于存储 Web 服务的凭据。我需要加密密码字段 (new_SharePointServicePassword),并且我希望我的插件进行加密。

所以,我创建了一个注册了以下事件的新程序集。

base.RegisteredEvents.Add(new Tuple<int, string, string, Action<LocalPluginContext>>(40, "Create", "new_systemconfiguration", new Action<LocalPluginContext>(ExecutePostSystemConfigurationCreate)));
base.RegisteredEvents.Add(new Tuple<int, string, string, Action<LocalPluginContext>>(40, "Update", "new_systemconfiguration", new Action<LocalPluginContext>(ExecutePostSystemConfigurationCreate)));

我的插件代码如下。

string plainTextPassword = SystemConfiguration.new_SharePointServicePassword;
string encryptedPassword;
this.TracingService.Trace("Generating Keys");
Encryption encryption = new Encryption(localContext.PluginExecutionContext.OrganizationId.ToString());
this.TracingService.Trace("Generating Keys - Completed");
if (!string.IsNullOrEmpty(plainTextPassword))
{
    this.TracingService.Trace("Encrypting password");
    encryptedPassword = encryption.Encrypt(plainTextPassword);
    this.TracingService.Trace("Encrypting password - Completed");
    SystemConfiguration.new_SharePointServicePassword = encryptedPassword;
    localContext.OrganizationService.Update(SystemConfiguration);
}

针对插件注册的步骤适用于创建和更新消息的后期操作。更新消息在 new_SharePointServicePassword 属性上进行过滤。

问题

  1. 为什么需要调用localContext.OrganizationService.Update(SystemConfiguration);?是不是因为我的插件在更改提交到数据库后才执行?
  2. 我可以将步骤修改为更新消息上的 Pre Operation 吗?我试过这个,但我的插件从来没有触发过?为什么没有触发?
  3. 我有什么办法可以做得更好吗?

【问题讨论】:

    标签: c# dynamics-crm-2011 dynamics-crm dynamics-crm-2013 dynamics-crm-online


    【解决方案1】:

    我建议您在 Pre Operation 上运行插件。因为当你通过 UI 输入密码时,它会先保存未加密的密码。用户必须刷新才能看到加密。此外,如果您在密码字段上启用了审核。它将在审核日志中显示未加密的密码。在Pre Operation 上,您不需要以下行:

    localContext.OrganizationService.Update(SystemConfiguration);
    

    确保在代码中将 40 替换为 20

    【讨论】:

    • 谢谢,我会更新我的插件并让你知道。完美的。它就像一个魅力。这也意味着我不再需要检查深度是否 > 1 作为我插件的一部分。 :-) 耶!
    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    相关资源
    最近更新 更多