通过代码(C#)使用Microsoft Dynamics CRM 2011(IFD)对用户进行身份验证

时间:2014-09-08 03:15:56

标签: c# authentication dynamics-crm-2011 adfs2.0

我在Azure上托管的Rollup 17上有面向互联网的Dynamics CRM 2011部署。

根据Microsoft网站(http://www.microsoft.com/en-us/download/details.aspx?id=41701)上提供的指南配置部署。

访问应用程序时,通过ADFS进行的身份验证工作正常,我可以成功访问它。

我也在尝试构建一个连接到CRM的自定义Web应用程序。我已下载CRM 2011 SDK并尝试运行\ SDK \ SampleCode \ CS \ QuickStart中的示例代码。但是,身份验证失败,并显示以下错误:

请求频道在00:00:59.9969195之后等待回复时超时。增加传递给Request的调用的超时值或增加Binding上的SendTimeout值。分配给此操作的时间可能是较长超时的一部分。

当进入内部异常细节时,我可以看到:

对“http://sts1.mydomain.com.au/adfs/services/trust/13/username”的HTTP请求已超过分配的超时00:01:00。分配给此操作的时间可能是较长超时的一部分。

我正在试图找出为什么它试图通过HTTP访问用户名端点。当我在我的ADFS服务器上打开端口80时,它很好,我可以进行身份​​验证。但是,我不希望端口80打开,我希望所有通信都通过HTTPS !!

我已尝试过谷歌发现的所有潜在解决方案但无济于事。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我们与Microsoft支持人员合作,他们复制了我们的环境,以了解发生了什么。但是,对于他们来说,身份验证请求会转到 usernamemixed 端点,因为它使用HTTPS时应该是正确的行为。

经过一些测试,我们决定禁用用户名端点,令我们惊讶的是,请求开始转到 usernamemixed 端点,它们一切正常现在

所以,不确定为什么它没有像MS支持人员那样直接使用 usernamemixed 端点,但是在禁用用户名端点之后。我能看到的唯一区别是他们使用的是Windows Server 2012 R2,而我们使用的是Windows Server 2012。