Пример #1
0
        public static async Task <IActionResult> AboutFunction(
            // Using /a/p/i route prefix, to let Functions Host distinguish api methods from statics
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "a/p/i/about")] HttpRequest req,
            [DurableClient(TaskHub = "%DFM_HUB_NAME%")] IDurableClient durableClient,
            ILogger log
            )
        {
            // Checking that the call is authenticated properly
            try
            {
                await Auth.ValidateIdentityAsync(req.HttpContext.User, req.Headers);
            }
            catch (Exception ex)
            {
                log.LogError(ex, "Failed to authenticate request");
                return(new UnauthorizedResult());
            }

            string accountName = string.Empty;
            var    match       = AccountNameRegex.Match(Environment.GetEnvironmentVariable(EnvVariableNames.AzureWebJobsStorage));

            if (match.Success)
            {
                accountName = match.Groups[1].Value;
            }

            return(new
            {
                accountName,
                hubName = durableClient.TaskHubName,
                version = Assembly.GetExecutingAssembly().GetName().Version.ToString()
            }
                   .ToJsonContentResult());
        }
Пример #2
0
        public static IActionResult Run(
            // Using /a/p/i route prefix, to let Functions Host distinguish api methods from statics
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "a/p/i/about")] HttpRequest req,
            [DurableClient(TaskHub = "%DFM_HUB_NAME%")] IDurableClient durableClient
            )
        {
            // Checking that the call is authenticated properly
            try
            {
                Globals.ValidateIdentity(req.HttpContext.User, req.Headers);
            }
            catch (UnauthorizedAccessException ex)
            {
                return(new OkObjectResult(ex.Message)
                {
                    StatusCode = 401
                });
            }

            string accountName = string.Empty;
            var    match       = AccountNameRegex.Match(Environment.GetEnvironmentVariable(EnvVariableNames.AzureWebJobsStorage));

            if (match.Success)
            {
                accountName = match.Groups[1].Value;
            }

            return(new
            {
                accountName,
                hubName = durableClient.TaskHubName,
                version = Assembly.GetExecutingAssembly().GetName().Version.ToString()
            }
                   .ToJsonContentResult());
        }
Пример #3
0
        public static IActionResult Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
            [OrchestrationClient] DurableOrchestrationClient orchestrationClient
            )
        {
            // Checking that the call is authenticated properly
            try
            {
                Globals.ValidateIdentity(req.HttpContext.User, req.Headers);
            }
            catch (UnauthorizedAccessException ex)
            {
                return(new OkObjectResult(ex.Message)
                {
                    StatusCode = 401
                });
            }

            string accountName = string.Empty;
            var    match       = AccountNameRegex.Match(Environment.GetEnvironmentVariable("AzureWebJobsStorage"));

            if (match.Success)
            {
                accountName = match.Groups[1].Value;
            }

            return(new JsonResult(new {
                accountName,
                hubName = orchestrationClient.TaskHubName,
                version = Assembly.GetExecutingAssembly().GetName().Version.ToString()
            },
                                  Globals.SerializerSettings));
        }
Пример #4
0
        public static Task <IActionResult> DfmAboutFunction(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = Globals.ApiRoutePrefix + "/about")] HttpRequest req,
            string connName,
            string hubName,
            ILogger log
            )
        {
            return(req.HandleAuthAndErrors(connName, hubName, log, async() => {
                string accountName = string.Empty;

                string storageConnString = Environment.GetEnvironmentVariable(Globals.GetFullConnectionStringEnvVariableName(connName));
                var match = AccountNameRegex.Match(storageConnString ?? string.Empty);
                if (match.Success)
                {
                    accountName = match.Groups[1].Value;
                }

                return new
                {
                    accountName,
                    hubName = hubName,
                    version = Assembly.GetExecutingAssembly().GetName().Version.ToString()
                }
                .ToJsonContentResult();
            }));
        }
Пример #5
0
        public static async Task <IActionResult> DfmAboutFunction(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = Globals.ApiRoutePrefix + "/about")] HttpRequest req,
            string taskHubName,
            ILogger log
            )
        {
            // Checking that the call is authenticated properly
            try
            {
                await Auth.ValidateIdentityAsync(req.HttpContext.User, req.Headers, taskHubName);
            }
            catch (Exception ex)
            {
                log.LogError(ex, "Failed to authenticate request");
                return(new UnauthorizedResult());
            }

            string accountName = string.Empty;
            var    match       = AccountNameRegex.Match(Environment.GetEnvironmentVariable(EnvVariableNames.AzureWebJobsStorage));

            if (match.Success)
            {
                accountName = match.Groups[1].Value;
            }

            return(new
            {
                accountName,
                hubName = taskHubName,
                version = Assembly.GetExecutingAssembly().GetName().Version.ToString()
            }
                   .ToJsonContentResult());
        }