【发布时间】:2015-09-10 06:02:04
【问题描述】:
我正在开发一个 C# 应用程序,用于从 Dynamics CRM Online 检索数据。为了验证 Dynamics CRM 的用户名和密码,我使用 WhoAmIRequest。在发生以下情况之前,它可以正常工作。
1) 使用有效 URL、用户名和密码连接 Dynamics CRM。
2) 释放组织服务对象。
3) 使用有效 URL、用户名和无效密码重新连接 Dynamics CRM。
在这种情况下,WhoAmIRequest 也成功执行。但它应该会失败。
下面是我正在使用的代码:
private void button6_Click(object sender, EventArgs e)
{
CrmConnection connection;
string url = "Url=https://mytest.crm.dynamics.com ;Username=mytest@mytest.onmicrosoft.com; Password=goodpassword;";
connection = CrmConnection.Parse(url);
OrganizationService orgService = new OrganizationService(connection);
Guid userid = ((WhoAmIResponse)orgService.Execute(new WhoAmIRequest())).UserId;
if (userid == null)
MessageBox.Show("Login Failed");
else
MessageBox.Show("Login Success");
orgService.Dispose();
url = "Url=https://mytest.crm.dynamics.com ;Username=mytest@mytest.onmicrosoft.com; Password=badpassword;";
connection = CrmConnection.Parse(url);
orgService = new OrganizationService(connection);
userid = ((WhoAmIResponse)orgService.Execute(new WhoAmIRequest())).UserId;
if (userid == null)
MessageBox.Show("Login Failed");
else
MessageBox.Show("Login Success");
orgService.Dispose();
url = "Url=https://mytest.crm.dynamics.com ;Username=mytest@mytest.onmicrosoft.com; Password=goodpassowrd;";
connection = CrmConnection.Parse(url);
orgService = new OrganizationService(connection);
userid = ((WhoAmIResponse)orgService.Execute(new WhoAmIRequest())).UserId;
if (userid == null)
MessageBox.Show("Login Failed");
else
MessageBox.Show("Login Success");
orgService.Dispose();
}
上面代码的输出显示3个消息框
登录成功
登录成功
登录成功
但它应该显示为
登录成功
登录失败
登录成功
我也尝试了Nicknow 在Need to validate CRM credentials 问题中建议的答案,但没有任何帮助
我们将不胜感激。
感谢和问候 文卡特桑
【问题讨论】:
-
当我尝试这样做时,它会要求我提供凭据,您是否在该响应中获得了有效用户?
-
感谢 Sxntk 的回复,这不是我刚刚修改为某些无效的有效凭证,因此我使用的凭证仅限于共享。您可以在动态 crm 中创建试用帐户以进行测试。如果您需要证书,请告诉我。
-
我在本地的 crm 上尝试这个,所以当我处理服务并尝试使用错误的密码进行身份验证时,会弹出活动目录,所以如果我不提供正确的凭据,它会失败.
-
感谢 Sxntk 的回复,也许你是对的,我只用它来连接在线版本。我没有在本地测试它。
标签: c# dynamics-crm crm microsoft-dynamics