Несанкционированное исключение при создании токена доступа с помощью client_Id и client_secret для sharepoint - PullRequest
0 голосов
/ 09 июля 2019

Я использую код ac # для генерации токена доступа для своего сайта sharepoint, используя идентификатор клиента и Client Secret. Когда я пишу ответ, используя HttpWebResponse, я получаю 401: Unauthorized.

Я уже сгенерировал токен доступа, используя этот код, и он работал нормально.Теперь я получаю исключение в

var response = (HttpWebResponse)myWebRequest.GetResponse();
CommonUtility.stGetAccessTokenUrl = string.Format(CommonUtility.stGetAccessTokenUrl, CommonUtility.tenantID);
                myWebRequest = WebRequest.Create(CommonUtility.stGetAccessTokenUrl);
                myWebRequest.ContentType = "application/x-www-form-urlencoded";
                myWebRequest.Method = "POST";

                // Add the below body attributes to the request
                /*
                 *  grant_type  client_credentials  client_credentials
                 client_id  ClientID@TenantID 
                 client_secret  ClientSecret 
                 resource  resource/SiteDomain@TenantID  resourceid/abc.sharepoint.com@tenantID
                 */
                var postData = "grant_type=client_credentials";
                postData += "&client_id=" + CommonUtility.stClientID + "@" + CommonUtility.tenantID;
                postData += "&client_secret=" + (CommonUtility.stClientSecret);
                postData += "&resource=" + CommonUtility.resourceID + "/" + CommonUtility.stSiteDomain + "@" + CommonUtility.tenantID;
                var data = Encoding.ASCII.GetBytes(postData);

                using (var stream = myWebRequest.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }
                var response = (HttpWebResponse)myWebRequest.GetResponse();

                var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

                string[] stArrResponse = responseString.Split(',');

                //get the access token and expiry time ,etc

                foreach (var stValues in stArrResponse)
                {

                    if (stValues.StartsWith("\"access_token\":"))
                    {
                        //Console.WriteLine(" Result => " + stValues);
                        accessToken = stValues.Substring(16);
                        //Console.WriteLine(" Result => " + accessToken);
                        accessToken = accessToken.Substring(0, accessToken.Length - 2);
                        // Console.WriteLine(" Result => " + accessToken);
                    }
                }

Я изменил только идентификатор клиента и секрет клиента, и он начал давать мне неавторизованное исключение.Может ли кто-нибудь помочь с этим?

...