Exemplo n.º 1
0
 public void buttonGetCredential_Click(object sender, EventArgs e)
 {
     labelAccessTokenData.Text = "Requesting token...";
     try
     {
         AuthorizationToken result = GetOAuthToken.Program.RunAsync(textBoxTenantId.Text, textBoxClientId.Text, textBoxClientSecret.Text);
         labelExpiresInData.Text   = result.Expires_In.ToString();
         labelNotBeforeData.Text   = result.Not_Before.ToString();
         labelExpiresOnData.Text   = result.Expires_On.ToString();
         labelTokenTypeData.Text   = result.Token_Type;
         labelAccessTokenData.Text = result.Access_Token;
     }
     catch (Exception err)
     {
         labelAccessTokenData.Text = err.Message;
     }
 }
Exemplo n.º 2
0
        static public AuthorizationToken RunAsync(string TenantId, string ClientId, string ClientSecret)
        {
            CredentialRequest credentialRequest = new CredentialRequest
            {
                TenantId     = TenantId,
                ClientId     = ClientId,
                ClientSecret = ClientSecret
            };

            string uri = "https://login.microsoftonline.com/" + TenantId + "/oauth2/v2.0/token/";

            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri);

            webRequest.Method      = "POST";
            webRequest.ContentType = "application/x-www-form-urlencoded";
            webRequest.MaximumAutomaticRedirections = 4;
            webRequest.MaximumResponseHeadersLength = 4;

            var postData = "client_id=" + ClientId;

            postData += "&scope=https://graph.microsoft.com/.default";
            postData += "&client_secret=" + ClientSecret;
            postData += "&grant_type=client_credentials";

            var data = ASCIIEncoding.ASCII.GetBytes(postData);

            webRequest.ContentLength = data.Length;

            Stream sendStream = webRequest.GetRequestStream();

            sendStream.Write(data, 0, data.Length);
            sendStream.Close();

            HttpWebResponse response      = (HttpWebResponse)webRequest.GetResponse();
            Stream          receiveStream = response.GetResponseStream();
            StreamReader    readStream    = new StreamReader(receiveStream, Encoding.UTF8);

            string result = readStream.ReadToEnd();

            AuthorizationToken deserializedResult = JsonConvert.DeserializeObject <AuthorizationToken>(result);

            response.Close();
            readStream.Close();

            return(deserializedResult);
        }