我的插件加密/解密一个字段。在 CRM 表单中的现场工作。
在我的控制台应用程序中,检索绕过了我的插件,例如,它直接从数据库中检索加密值而不运行插件。调试时,从表单访问该字段时会命中插件中的断点,但从我的控制台程序访问时不会命中它们。
我很惊讶我的插件不是从程序中调用的。它绕过了我的业务规则。
这是我从程序中访问实体和字段的方式:
private static OrganizationServiceProxy service = null;
private static OrganizationServiceContext orgSvcContext = null;
public static void RetrieveSSNs()
{
var query = orgSvcContext.CreateQuery("bpa_consumer");
foreach (Entity consumer in query)
{
if (consumer.Attributes.Contains("bpa_ssn"))
{
string ssn = consumer["bpa_ssn"].ToString();
Console.WriteLine(string.Format("Consumer \"{0}\" has SSN {1}", consumer.Attributes["bpa_name"], ssn));
}
else
{
Console.WriteLine(string.Format("Consumer \"{0}\" doesn't have a SSN", consumer.Attributes["bpa_name"]));
}
}
}