从Dynamics 365插件访问非Azure Web API(本地托管在IIS中)

从Dynamics 365插件访问非Azure Web API(本地托管在IIS中),azure,asp.net-web-api2,microsoft-dynamics,dynamics-365,Azure,Asp.net Web Api2,Microsoft Dynamics,Dynamics 365,各位早上好, 我正试图从Dynamics 365插件中从本地托管(在IIS中)的Web API中提取数据。我将WebAPI设置为使用“个人用户帐户”,并将其公开。当我测试它时,它在Postman中正常工作,因为我可以很好地获得令牌,然后使用该令牌进行查询 我的想法是,在插件中,我将使用HttpWebRequest请求一个令牌,然后将该令牌用于将来的查询 我的问题是,我根本无法从Dynamics 365插件调用该Web API,因为我在尝试运行插件注册工具中的代码时遇到了安全错误。以下是我在这方面

各位早上好,

我正试图从Dynamics 365插件中从本地托管(在IIS中)的Web API中提取数据。我将WebAPI设置为使用“个人用户帐户”,并将其公开。当我测试它时,它在Postman中正常工作,因为我可以很好地获得令牌,然后使用该令牌进行查询

我的想法是,在插件中,我将使用HttpWebRequest请求一个令牌,然后将该令牌用于将来的查询

我的问题是,我根本无法从Dynamics 365插件调用该Web API,因为我在尝试运行插件注册工具中的代码时遇到了安全错误。以下是我在这方面的研究成果

1.)我无法访问Web API,因为我没有在“Microsoft Azure Web App”中注册它。我的问题是,因为我们没有计划使用Azure(我不确定它是否符合此项目的安全规范),“我必须在Azure中注册它吗?”

下面这段引用自MSDN,主题是插件中的web服务调用。我不确定我的设置中缺少/违反了什么

网络访问

沙盒插件和自定义工作流活动可以通过HTTP和HTTPS协议访问网络。此功能支持访问流行的web资源,如社交网站、新闻源、web服务等。以下web访问限制适用于此沙箱功能

只允许使用HTTP和HTTPS协议

不允许访问本地主机(环回)

无法使用IP地址。您必须使用需要DNS名称解析的命名web地址

支持并推荐匿名身份验证。没有提示登录用户输入凭据或保存这些凭据的规定

2.)我发现很多人说,插件注册工具总是会抛出一个安全错误,因为我的插件被沙盒。每个人都只是使用跟踪日志来调试它吗

3.)我一直在研究Dynamics 365 Web挂钩的使用,但我需要这个插件来执行“RetrieveMultiple”事件。这是我可以用D365网络钩子做的吗


非常感谢你们的帮助。祝您度过愉快的一天。

您的Web服务应该有一个公共可访问的https URL,以便dynamics 365可以从任何地方访问它。您应该通过登录机制来保护您的Web服务

作为测试、安全和配置建议,您不应该在插件代码中添加url、用户名和密码,而应该在crm记录中进行配置。因此,您可以在不同的webservice实例上开发和测试,并且您的生产实例连接到正确的webservice,而无需在部署之前更改代码