首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web快速启动示例

Web快速启动示例
EN

Stack Overflow用户
提问于 2019-06-04 10:24:45
回答 1查看 169关注 0票数 1

我正致力于与Dynamic365集成,并遵循Web示例(C#)。虽然这是可行的,但我想了解如何处理这个示例有两个问题。

首先,示例使用了Microsoft.IdentityModel.Clients.ActiveDirectory包的旧版本,并解释说这是因为:

这个示例依赖于在没有单独的Azure登录对话框的情况下传递用户凭据的能力,这个对话框在这个库的3.x版本中是不可用的。

其次,示例使用了来自微软的硬编码clientId:

代码语言:javascript
复制
// Azure Active Directory registered app clientid for Microsoft samples
string clientId = "51f81489-12ee-4a9e-aaae-a2591f45987d";

考虑到我使用的是Office365帐户,而且我根本看不出Azure是如何融入到图片中的,那么在没有上述问题的情况下,实现与Dynamics365连接的最佳方法是什么呢?

EN

回答 1

Stack Overflow用户

发布于 2019-07-12 04:32:14

使用C#使用Dynamics365扩展的一种快速方法是使用SDK,这可以在通过NuGet (XrmTooling)中获得--通过这种方式,您可以使用授权类型ClientSecret使用带有客户端和秘钥的连接串,下面是使用WhoAmIRequest的代码示例。这需要使用应用程序用户以下是如何做这件事

代码语言:javascript
复制
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

var urlMask = "RequireNewInstance=True;SkipDiscovery=True;AuthType=ClientSecret;LoginPrompt=Never;ClientSecret={0};ClientId={1};Url={2};AppId=51f81489-12ee-4a9e-aaae-a2591f45987d;RedirectUri=app://58145b91-0c36-4500-8554-080854f2ac97/";
var fullUrl = string.Format(urlMask, clientSecret, clientId, d365Url);

var conn = new CrmServiceClient(fullUrl);
var _orgService = conn.OrganizationWebProxyClient ?? (IOrganizationService)conn.OrganizationServiceProxy;

WhoAmIRequest req = new WhoAmIResquest();
WhoAmIResponse resp = _orgService.Execute(req) as WhoAmIResponse;

Console.Write(resp.UserId);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56441999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档