diff options
Diffstat (limited to 'samples/OAuthClient/AzureAD.aspx.cs')
-rw-r--r-- | samples/OAuthClient/AzureAD.aspx.cs | 50 |
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 |