The Help Desk dashboard needs to be able to display any current Announcements from the Operations team. The idea is that the Operations team has a SharePoint team site and has added a standard Announcements app. When useful bits of information need to be made available, they add a new announcement to the app. It […]
The Help Desk demo, Part 5–SQL Azure
For the Help Desk dashboard to keep track of the current Support Tickets, we need to store and retrieve that information from a database. In our case, we’ll utilize SQL Azure because cloud stuff is awesome! Really, our database is incredibly simple. I won’t cover creating a SQL Azure database in depth since there are […]
The Help Desk demo, Part 4–Microsoft Graph
Admittedly, this is the section of the application that I’m most excited about, since it’s brand spanking new technology. Sure, it’s been around for a while as the Unified API, but now it’s officially official and it’s called the Microsoft Graph. The Microsoft Graph is a REST based service that provides a single endpoint to […]
The Help Desk demo, Part 3–Authentication
Now that we have our application configured in Azure, we need to update the Startup.Auth.cs class (in the App_Start folder) so that the application can utilize Azure Active Directory authentication for the users. The Startup.Auth.cs class looks like this. using System;using System.IdentityModel.Claims;using System.Threading.Tasks;using System.Web;using Microsoft.Owin.Security;using Microsoft.Owin.Security.Cookies;using Microsoft.Owin.Security.OpenIdConnect;using Microsoft.IdentityModel.Clients.ActiveDirectory;using Owin;using BusinessApps.HelpDesk.Models;using BusinessApps.HelpDesk.Helpers; namespace BusinessApps.HelpDesk{ public partial class Startup { […]
The Help Desk demo, Part 2–Azure Active Directory
Authentication to the various Office 365 APIs and access points requires some effort. First, we need to create our application. Then we need to assign access to the individual applications. Finally, we need to generate and install a certificate for authentication. Creating the application To create the application, we first need to make our way […]
The Help Desk demo, Part 1–Creating the project
The first step creating a new website, naturally, is to create a new Visual Studio project. In this case, it’ll be a new ASP.NET MVC project built in Visual Studio 2015. I won’t go through the individual steps for creating a new web project, since that information is available in many, many places around the […]
The Help Desk demo
Anyone that has spent any time working with O365 and/or Azure APIs knows that there are thousands and thousands of how-to articles available to read. Those folks also know that most of those articles cover fairly small, easy to consume topics that cover a specific subject matter. However, after some conversations with Vesa Juvonen, it […]
Application hang when executing AuthenticationContext.AcquireTokenAsync
Introduction Recently, a fellow Microsoft Premier Field Engineer reached out to me to ask for some assistance in solving a problem that he had encountered while working with a customer that was building an MVC based SharePoint add-in that was attempting to access Azure Active Directory via the Azure Graph API. The customer had code […]
Sharing a SharePoint Online calendar via iCalendar
Introduction For those of you that follow my blog, you may have caught that I’ve been doing some work lately migrating a non-profit organization to the Office 365/Azure platform, which includes SharePoint Online. As with many SharePoint environments, this non-profit depends heavily on calendars. The non-profit has various levels of leadership and membership and each […]
Calling Exchange Online PowerShell from an Azure web app
Introduction Kirk Evans recently wrote a blog post titled Call O365 Exchange Online API from a SharePoint App. Kirk’s post reminded me of some work that I had done with a non-profit around managing Exchange Online from a SharePoint app. This non-profit is setup such that there is an international board of directors, state level […]