static void Main(string[] args) { var dt = new DateTime(1498464308079); authenticationContext = new AuthenticationContext (String.Format(CultureInfo.InvariantCulture, aadInstance, tenant)); authenticationContext.TokenCache.Clear(); AuthenticationResult testCredentials = null; UserCredential uc = null; uc = new UserPasswordCredential(hardcodedUsername, hardcodedPassword); testCredentials = GetAzureAdToken(authenticationContext, sfboResourceAppId, clientId, redirectUri, uc); Accesstoken = testCredentials.AccessToken; ucwaApplicationsUri = GetUcwaRootUri(authenticationContext, sfboResourceAppId, clientId, redirectUri, uc); ucwaApplicationsHost = ReduceUriToProtoAndHost(ucwaApplicationsUri); ucwaAuthenticationResult = GetAzureAdToken(authenticationContext, ucwaApplicationsHost, clientId, redirectUri, uc); Accesstoken = ucwaAuthenticationResult.AccessToken; UcwaMyAppsObject ucwaMyAppsObject = new UcwaMyAppsObject() { UserAgent = "Notification_App", EndpointId = Guid.NewGuid().ToString(), Culture = "en-US" }; Console.WriteLine("Making request to ucwaApplicationsUri " + ucwaApplicationsUri); createUcwaAppsResults = CreateUcwaApps(ucwaAuthenticationResult, ucwaApplicationsUri, ucwaMyAppsObject); SendIMToUser(); // send im to user }
public static string CreateUcwaApps(HttpClient httpClient, AuthenticationResult ucwaAuthenticationResult, string ucwaApplicationsRootUri, UcwaMyAppsObject ucwaAppsObject) { string createUcwaAppsResults = string.Empty; httpClient.DefaultRequestHeaders.Clear(); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ucwaAuthenticationResult.AccessToken); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var createUcwaPostData = JsonConvert.SerializeObject(ucwaAppsObject); Console.WriteLine("CreateUcwaApps POST data is " + createUcwaPostData); var httpResponseMessage = httpClient.PostAsync(ucwaApplicationsRootUri, new StringContent(createUcwaPostData, Encoding.UTF8, "application/json")).Result; Console.WriteLine("CreateUcwaApps response is " + httpResponseMessage.Content.ReadAsStringAsync().Result); if (httpResponseMessage.IsSuccessStatusCode) { createUcwaAppsResults = httpResponseMessage.Content.ReadAsStringAsync().Result; } return createUcwaAppsResults; }
public static string CreateUcwaApps(HttpClient httpClient, AuthenticationResult ucwaAuthenticationResult, string ucwaApplicationsRootUri, UcwaMyAppsObject ucwaAppsObject) { string createUcwaAppsResults = string.Empty; httpClient.DefaultRequestHeaders.Clear(); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ucwaAuthenticationResult.AccessToken); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var createUcwaPostData = JsonConvert.SerializeObject(ucwaAppsObject); Console.WriteLine("CreateUcwaApps POST data is " + createUcwaPostData); var httpResponseMessage = httpClient.PostAsync(ucwaApplicationsRootUri, new StringContent(createUcwaPostData, Encoding.UTF8, "application/json")).Result; Console.WriteLine("CreateUcwaApps response is " + httpResponseMessage.Content.ReadAsStringAsync().Result); if (httpResponseMessage.IsSuccessStatusCode) { createUcwaAppsResults = httpResponseMessage.Content.ReadAsStringAsync().Result; ApplicationRoot obj = new ApplicationRoot(); JsonConvert.PopulateObject(createUcwaAppsResults, obj); if (obj != null) { ConfigData.ucwaApplication = obj._links.self.href; // ConfigData.ucwaApplications += ConfigData.ucwaApplication; ConfigData.ucwaEvents = obj._links.events.href; } // switch (xml02.GetAttribute("rel")) // case "application":ucwaApplication // case "me": ConfigData.ucwaMe)); // case "events":ConfigData.ucwaEvents)); // case "makeMeAvailable":ConfigData.ucwaMakeMeAvailable)); // case "startMessaging":ConfigData.ucwaMessagingInvitations)); // case "startPhoneAudio": ConfigData.ucwaStartPhoneAudio)); } return(createUcwaAppsResults); }
public static string CreateUcwaApps(HttpClient httpClient, AuthenticationResult ucwaAuthenticationResult, string ucwaApplicationsRootUri, UcwaMyAppsObject ucwaAppsObject) { string createUcwaAppsResults = string.Empty; httpClient.DefaultRequestHeaders.Clear(); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ucwaAuthenticationResult.AccessToken); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var createUcwaPostData = JsonConvert.SerializeObject(ucwaAppsObject); Console.WriteLine("CreateUcwaApps POST data is " + createUcwaPostData); var httpResponseMessage = httpClient.PostAsync(ucwaApplicationsRootUri, new StringContent(createUcwaPostData, Encoding.UTF8, "application/json")).Result; Console.WriteLine("CreateUcwaApps response is " + httpResponseMessage.Content.ReadAsStringAsync().Result); if (httpResponseMessage.IsSuccessStatusCode) { createUcwaAppsResults = httpResponseMessage.Content.ReadAsStringAsync().Result; } return(createUcwaAppsResults); }
// Login to the user's account and create a UCWA app async static void Login(bool IsAuto = false) { // Clear any cached tokens. // We do this to ensure logins with different accounts work // during the same launch of the app authenticationContext.TokenCache.Clear(); string loginStyle = "console"; Console.WriteLine("How do you want to login?"); Console.WriteLine("console | dialog | code >"); if (!IsAuto) { loginStyle = Console.ReadLine(); } AuthenticationResult testCredentials = null; UserCredential uc = null; switch (loginStyle.ToLower()) { case "console": uc = GetUserCredentials(); testCredentials = UcwaSfbo.AzureAdAuth.GetAzureAdToken(authenticationContext, sfboResourceAppId, clientId, redirectUri, uc); break; case "dialog": if (redirectUri == String.Empty) { Console.WriteLine("You haven't defined redirectUri which is needed if you want to sign in with a dialog"); return; } testCredentials = UcwaSfbo.AzureAdAuth.GetAzureAdToken(authenticationContext, sfboResourceAppId, clientId, redirectUri, uc); break; case "code": DeviceCodeResult deviceCodeResult = authenticationContext.AcquireDeviceCodeAsync(sfboResourceAppId, clientId).Result; Console.WriteLine(deviceCodeResult.Message); Console.WriteLine("Or, use Control-C to exit the app"); testCredentials = authenticationContext.AcquireTokenByDeviceCodeAsync(deviceCodeResult).Result; break; default: Console.Write("Please select a login style and try again"); Console.Write("\n"); return; } if (testCredentials == null) { Console.WriteLine("We encountered an Azure AD error"); Console.WriteLine("Check your tenant, clientID, and credentials"); return; } ucwaApplicationsUri = UcwaAutodiscovery.GetUcwaRootUri(httpClient, authenticationContext, sfboResourceAppId, clientId, redirectUri, uc); Console.WriteLine("We'll store the base UCWA app URI for use with UCWA app calls"); Console.WriteLine("We prefix this to the links returned from the UCWA apps POST"); Console.WriteLine("Since these links aren't full URIs"); ucwaApplicationsHost = Utilities.ReduceUriToProtoAndHost(ucwaApplicationsUri); ConfigData.ucwaApplicationsHost = ucwaApplicationsHost; Console.WriteLine("ucwaApplicationsHost is " + ucwaApplicationsHost); Console.WriteLine("Get a token to access the user's UCWA Applications Resources from Azure AD."); Console.WriteLine("We can re-use this token for each UCWA app call"); ucwaAuthenticationResult = AzureAdAuth.GetAzureAdToken(authenticationContext, ucwaApplicationsHost, clientId, redirectUri, uc); Console.WriteLine("Now we'll create and/or query UCWA Apps via POST"); Console.WriteLine("Well create a UCWA apps object to pass to CreateUcwaApps"); List <string> Modalities = new List <string>(); Modalities.Add("PhoneAudio"); Modalities.Add("Messaging"); UcwaMyAppsObject ucwaMyAppsObject = new UcwaMyAppsObject() { UserAgent = "myAgent1", EndpointId = Guid.NewGuid().ToString(), Culture = "en-US" }; Console.WriteLine("Making request to ucwaApplicationsUri " + ucwaApplicationsUri); createUcwaAppsResults = CreateUcwaApps(httpClient, ucwaAuthenticationResult, ucwaApplicationsUri, ucwaMyAppsObject); return; }