public async Task <ActionResult> Index() { return(RedirectToAction("File")); var outlookServicesClient = await _factory.CreateOutlookServicesClientWithAsync("Mail"); //var great = await LookupOneDriveUrl(); var accessToken = await _factory.GetAccessToken(); var jwt = new JwtSecurityToken(accessToken); var endpointUri = _factory.ServiceEndpointUri; Assert.ThrowExceptionIfNull(outlookServicesClient, "Failed to create outlook service client, please ensure you have capbility to access mails"); var result = await(from i in outlookServicesClient.Me.Folders.GetById("Inbox").Messages orderby i.DateTimeReceived descending select i).Take(10).ExecuteAsync(); var mailItems = new List <MailItem>(); foreach (var mail in result.CurrentPage) { mailItems.Add(new MailItem(mail)); } return(View(mailItems)); }
public async Task <String> SendRequestToAPI(String driveEndpoint, String requestType, String contentType = null, Stream content = null) { var _factory = new ServiceClientFactory(); var accessToken = await _factory.GetAccessToken(); var jwt = new JwtSecurityToken(accessToken); var name = jwt.Claims.Where(q => q.Type == "unique_name").FirstOrDefault().Value; var tenantId = jwt.Claims.Where(q => q.Type == "tid").FirstOrDefault().Value; var urlRoot = jwt.Claims.Where(q => q.Type == "aud").FirstOrDefault().Value; var list = ""; // Currently using HttpClient but you can check out RestRequest library from Nuget // that will help make things easier. HttpClient client = new HttpClient(); // Base address points to {tenant}-my.sharepoint.com client.BaseAddress = new Uri(urlRoot); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // Add Authorization header client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); // Make call to Drive // HttpResponseMessage response = await client.GetAsync(driveEndpoint); HttpRequestMessage request = new HttpRequestMessage( new HttpMethod(requestType), driveEndpoint); if (content != null) { HttpContent requestContent = null; System.IO.Stream streamContent = content as System.IO.Stream; if (streamContent != null) { requestContent = new StreamContent(streamContent); // requestContent.Headers.ContentType = new MediaTypeHeaderValue(contentType); // request.Content = requestContent; } } HttpResponseMessage response = client.SendAsync(request).Result; if (response.IsSuccessStatusCode) { // Return json response as string list = await response.Content.ReadAsStringAsync(); } // return (drive); return(list); }
public async Task <ActionResult> Index() { if (Request.IsAuthenticated) { var _factory = new ServiceClientFactory(); var accessToken = await _factory.GetAccessToken(); var jwt = new JwtSecurityToken(accessToken); var name = jwt.Claims.Where(q => q.Type == "unique_name").FirstOrDefault().Value; var msoId = (object)this.Server.UrlEncode(Crypo.EncryptToBase64(name, "SSOUser", "asknlearn")); return(Redirect($"{OAuthSettings.LmsHost}{OAuthSettings.LmsUrl}msoID={msoId}")); } var content = new ContentResult(); content.Content = "For some reason, the app thinks you're unauthenticated."; return(content); }