summaryrefslogtreecommitdiffstats
path: root/samples/OAuthClient/AzureAD.aspx.cs
diff options
context:
space:
mode:
Diffstat (limited to 'samples/OAuthClient/AzureAD.aspx.cs')
-rw-r--r--samples/OAuthClient/AzureAD.aspx.cs50
1 files changed, 50 insertions, 0 deletions
diff --git a/samples/OAuthClient/AzureAD.aspx.cs b/samples/OAuthClient/AzureAD.aspx.cs
new file mode 100644
index 0000000..4b601fd
--- /dev/null
+++ b/samples/OAuthClient/AzureAD.aspx.cs
@@ -0,0 +1,50 @@
+namespace OAuthClient
+{
+ using System;
+ using System.Configuration;
+ using System.Net;
+ using System.Runtime.Serialization.Json;
+ using System.Web;
+ using System.Web.UI;
+
+ using DotNetOpenAuth.ApplicationBlock;
+ using DotNetOpenAuth.Messaging;
+ using DotNetOpenAuth.OAuth2;
+
+ public partial class AzureAD : System.Web.UI.Page
+ {
+ private static readonly AzureADClient client = new AzureADClient
+ {
+ ClientIdentifier = ConfigurationManager.AppSettings["AzureADAppID"],
+ ClientCredentialApplicator = ClientCredentialApplicator.PostParameter(ConfigurationManager.AppSettings["AzureADAppSecret"]),
+ };
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ IAuthorizationState authorization = client.ProcessUserAuthorization();
+ if (authorization == null)
+ {
+ // Kick off authorization request
+ client.RequestUserAuthorization();
+ }
+ else
+ {
+ string token = authorization.AccessToken;
+ AzureADClaims claimsAD = client.ParseAccessToken(token);
+
+ // Request to AD needs a {tenantid}/users/{userid}
+ var request = WebRequest.Create("https://graph.windows.net/" + claimsAD.Tid + "/users/" + claimsAD.Oid + "?api-version=0.9");
+ request.Headers = new WebHeaderCollection();
+ request.Headers.Add("authorization", token);
+ using (var response = request.GetResponse())
+ {
+ using (var responseStream = response.GetResponseStream())
+ {
+ var serializer = new DataContractJsonSerializer(typeof(AzureADGraph));
+ AzureADGraph graphData = (AzureADGraph)serializer.ReadObject(responseStream);
+ this.nameLabel.Text = HttpUtility.HtmlEncode(graphData.DisplayName);
+ }
+ }
+ }
+ }
+ }
+} \ No newline at end of file