Exemple #1
0
        public static Task <HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
        {
            Log(log, $"C# HTTP trigger function processed a request! RequestUri={req.RequestUri}");
            var func = new GetACSAccessTokensHandler(req);

            func.FunctionNotify += (sender, args) => Log(log, args.Message);

            var functionArgs = new GetACSAccessTokensArgs()
            {
                StorageAccount    = ConfigurationManager.AppSettings["ConfigurationStorageAccount"],
                StorageAccountKey = ConfigurationManager.AppSettings["ConfigurationStorageAccountKey"]
            };

            return(Task.FromResult(func.Execute(functionArgs)));
        }
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = "GetACSAccessTokens")] HttpRequestMessage req, TraceWriter log)
        {
            Log(log, $"C# HTTP trigger function processed a request! RequestUri={req.RequestUri}");
            var func = new GetACSAccessTokensHandler(req);

            func.FunctionNotify += (sender, args) => Log(log, args.Message);

            var getAcsAccessTokensFunctionArgs = new GetACSAccessTokensArgs
            {
                StorageAccount    = ConfigurationManager.AppSettings["ConfigurationStorageAccount"],
                StorageAccountKey = ConfigurationManager.AppSettings["ConfigurationStorageAccountKey"]
            };

            return(await Task.Run(() => func.Execute(getAcsAccessTokensFunctionArgs)));
        }
        /// <summary>
        /// Returns application/json containing userAccessToken and appOnlyAccessToken properties for a valid clientId and cacheKey combo or a 404 for invalid input.
        /// </summary>
        /// <param name="args">An <see cref="GetACSAccessTokensArgs"/> instance specifying the location of the client configuration in Azure storage.</param>
        /// <returns>JSON or 404</returns>
        public HttpResponseMessage Execute(GetACSAccessTokensArgs args)
        {
            try
            {
                var cacheKey = _queryParams["cacheKey"];
                var clientId = _queryParams["clientId"];

                var clientConfig = GetConfiguration(clientId);
                var tokens       = GetSecurityTokens(cacheKey, clientId);

                Uri hostUri = new Uri(tokens.AppWebUrl);

                var userAccessToken    = GetUserAccessToken(cacheKey, tokens, hostUri, clientConfig);
                var appOnlyAccessToken = ContextUtility.GetAppOnlyAccessToken(clientId, cacheKey);
                _response.StatusCode = HttpStatusCode.OK;
                _response.Content    = new StringContent($"{{\"userAccessToken\":\"{userAccessToken.AccessToken}\", \"appOnlyAccessToken\":\"{appOnlyAccessToken}\"}}");
                _response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            }
            catch
            {
                _response.StatusCode = HttpStatusCode.NotFound;
            }
            return(_response);
        }