当前位置: 首页 > news >正文

镇江网站seo外包有哪些网站是可以做宣传的

镇江网站seo外包,有哪些网站是可以做宣传的,明港网站建设公司,广州建设工程交易中心怎么样微软动态CRM专家罗勇 #xff0c;回复332或者20190505可方便获取本文#xff0c;同时可以在第一间得到我发布的最新博文信息#xff0c;follow me#xff01; 本文很多内容来自 John Towgood 撰写的Dynamics 365 Online Authenticate with Client Credentials #xff0c…微软动态CRM专家罗勇 回复332或者20190505可方便获取本文同时可以在第一间得到我发布的最新博文信息follow me 本文很多内容来自 John Towgood 撰写的Dynamics 365 Online Authenticate with Client Credentials 也着重参考了官方的 Use Single-Tenant server-to-server authentication 我根据新的Azure Portal界面做了一些操作上的变化并且改了一些代码还使用ADAL来简化代码。 登录 https://portal.azure.com 点击左边的 【Azure Active Directory】 然后再点击 【App registrations】 再点击【New registration】 输入一个合适的名称Supported account types保持默认的 Accounts in this organizational directory only (Orgname) 不变点击【Register】按钮。因为Redirect URI用不上所以不输入。 注册成功后会产生 Application (client) ID记录下来备用同时也记录下 Directory (tenant) ID。 再点击左边的【API Permissions】再点击右边的 【 Add a permission】按钮。 选择 【Dynamics CRM】  (也可以选择使用 PowerApps Runtime Serive 这个权限) 选择 【Delegated permissions】 【user_impersonation】后点击【Add permissions】按钮。 然后点击【Grant admin consent for Orgname】 在弹出的提示中选择【Yes】。 然后点击【Certificates secrets】 【 New client secret】输入合适的Description在点击【Add】按钮。 会自动生成Client secrets这里需要点击生成的secret旁边的【copy to clipboard】图标将其复制下来记得在这个步骤复制下来因为离开这个页面后就看不到这个secret了。 然后需要创建 一个Azure AD 用户点击左侧的【Azure Active Directory】 【Users】。 然后点击【New user】。 为用户输入NameUser Name然后点击【Create】按钮。 最后还需要到Dynamics 365 Customer Engagement中创建一个Application User。导航到 Settings Security Users切换到【Application Users】点击命令栏的【NEW】按钮。 记得要切换到 APPLICATION USER这个窗体输入的内容如下Application ID就是前面步骤记录的Application (client) ID其余的就是前面步骤创建的Azure AD user信息。 保存后会自动填充 Application ID URI 和 Azure AD Object ID 字段的值。 当然还需要给这个用户授予至少一个角色才行官方建议不要授予系统标准角色我这里复制了一个标准角色授予给他。 如果用Postman来获取access token的话如下图 下面就是用代码如何做了不多说看代码 using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Net.Http;using System.Net.Http.Headers;using System.Threading.Tasks; namespace UsingWebAPI{public class AuthenticationResponse{public string access_token { get; set; }public int expires_in { get; set; }public int expires_on { get; set; }public int ext_expires_in { get; set; }public int not_before { get; set; }public string resource { get; set; }public string token_type { get; set; }}class Program{ static string resourceUrl https://crm219270.crm5.dynamics.com/;static string clientId de8dd947-a3e3-48ec-8602-c3063f11dc29;static string clientSecret 5FsXh2*oNyLRm]Go1a9hD.[]k54GNOZ;static string tenantId 3e28b187-1c5c-42f5-a1be-3f47570da35d; static void Main(string[] args){GetAuthenticationResponse();Console.ReadKey();} private static async void GetAuthenticationResponse(){ListKeyValuePairstring, string vals new ListKeyValuePairstring, string(); vals.Add(new KeyValuePairstring, string(client_id, clientId));vals.Add(new KeyValuePairstring, string(resource, resourceUrl));vals.Add(new KeyValuePairstring, string(grant_type, client_credentials));vals.Add(new KeyValuePairstring, string(client_secret, clientSecret));string tokenUrl string.Format(https://login.windows.net/{0}/oauth2/token, tenantId); using (HttpClient httpClient new HttpClient()){httpClient.DefaultRequestHeaders.Add(Cache-Control, no-cache);HttpContent content new FormUrlEncodedContent(vals);HttpResponseMessage hrm httpClient.PostAsync(tokenUrl, content).Result;AuthenticationResponse authenticationResponse null;if (hrm.IsSuccessStatusCode){string data await hrm.Content.ReadAsStringAsync();authenticationResponse JsonConvert.DeserializeObjectAuthenticationResponse(data);await DataOperations(authenticationResponse);}else{Console.WriteLine(Error. hrm.ReasonPhrase);}}} private static async Task DataOperations(AuthenticationResponse authResult){using (HttpClient httpClient new HttpClient()){httpClient.BaseAddress new Uri(resourceUrl);httpClient.Timeout new TimeSpan(, , ); //2 minuteshttpClient.DefaultRequestHeaders.Add(OData-MaxVersion, 4.0);httpClient.DefaultRequestHeaders.Add(OData-Version, 4.0);httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(application/json));httpClient.DefaultRequestHeaders.Authorization new AuthenticationHeaderValue(Bearer, authResult.access_token);string content JsonConvert.SerializeObject(new { name A Account, telephone1 });HttpRequestMessage request new HttpRequestMessage(HttpMethod.Post, api/data/v9.1/accounts);request.Content new StringContent(content);request.Content.Headers.ContentType MediaTypeHeaderValue.Parse(application/json);HttpResponseMessage response await httpClient.SendAsync(request);if (response.IsSuccessStatusCode){Console.WriteLine(Account created.);}else{Console.WriteLine(String.Format(Failed to create account, reason is {0}., response.ReasonPhrase));}}}}} 当然如果使用ADAL的话代码会更加简单点 using Microsoft.IdentityModel.Clients.ActiveDirectory;using Newtonsoft.Json;using System;using System.Net.Http;using System.Net.Http.Headers; namespace UsingWebAPI{class Program{ static string resourceUrl https://crm219270.crm5.dynamics.com/;static string clientId de8dd947-a3e3-48ec-8602-c3063f11dc29;static string clientSecret 5FsXh2*oNyLRm]Go1a9hD.[]k54GNOZ;static string tenantId 3e28b187-1c5c-42f5-a1be-3f47570da35d; static void Main(string[] args){AuthAndInvoke();Console.ReadKey();} private static async void AuthAndInvoke(){var credentials new ClientCredential(clientId, clientSecret);var authContext new AuthenticationContext(https://login.microsoftonline.com/ tenantId);var result await authContext.AcquireTokenAsync(resourceUrl, credentials);using (HttpClient httpClient new HttpClient()){httpClient.BaseAddress new Uri(resourceUrl);httpClient.Timeout new TimeSpan(, , ); //2 minuteshttpClient.DefaultRequestHeaders.Add(OData-MaxVersion, 4.0);httpClient.DefaultRequestHeaders.Add(OData-Version, 4.0);httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(application/json));httpClient.DefaultRequestHeaders.Authorization new AuthenticationHeaderValue(Bearer, result.AccessToken);string content JsonConvert.SerializeObject(new { name A Account, telephone1 });HttpRequestMessage request new HttpRequestMessage(HttpMethod.Post, api/data/v9.1/accounts);request.Content new StringContent(content);request.Content.Headers.ContentType MediaTypeHeaderValue.Parse(application/json);HttpResponseMessage response await httpClient.SendAsync(request);if (response.IsSuccessStatusCode){Console.WriteLine(Account created.);}else{Console.WriteLine(String.Format(Failed to create account, reason is {0}., response.ReasonPhrase));}}}}} 可以看到代码创建的account的owner是我们前面步骤的Application User是以该用户身份在运行的。
http://www.yutouwan.com/news/83926/

相关文章:

  • 网站建设模块是什么意思域名都有哪些
  • 网站开发哪方面好做深圳市制作网站
  • wordpress模板 多梦长春网站优化
  • 江门网站建设开发标准型网站建设
  • 武威做网站的长春网站建设
  • 莱阳网站制作中国建设银行遵义市分行网站
  • 网站首页轮播图怎么换4399小游戏网页在线玩
  • 山东联通网站备案中国制造网内贸站
  • 企业网站建设免备案免费做链接的app有哪些
  • 网站建设得缺点什么值得买网站模版
  • 网站建设网页制作软件有哪些贵州微信网站建设
  • wordpress百度云插件网站建设优化外包
  • 世界做火的游戏视频网站黄页88和58那个推广好
  • 网站搜索引擎优化怎么做网站建站模板样例
  • 无锡电子商务网站建设公司内蒙网站建设seo优化
  • 大连做网站那个公司最好怎么制定网站
  • 物流网站建设规划书腾讯网站开发
  • 企业网站设计解决方案购物网站主页模板
  • 企业建设网站需要注意什么飞鱼广告投放
  • 站长工具樱花服务外包有哪些
  • 北京招聘高级网站开发工程师wordpress移动端音乐插件
  • 网站入口设计规范wordpress导航改哪个php文件
  • 专业做蛋糕的网站网站运营岗位介绍
  • 关于网站建设的工作总结网站项目建设的组织机构
  • asp.net建立网站吗营销型网站有哪些建设流程
  • 珠海商城网站把百度网址大全设为首页
  • 网站开发招聘名称公司做网站 优帮云
  • wordpress图片站优化成品软件网站大全推荐
  • 网站建设考试题目郑州官方网站建设首选华苏科技
  • php网站源码架构抚顺网站建设