Esempio n. 1
0
        public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            base.OnActionExecuting(context);
            var type = typeof(ObjectLogsPostParameters);

            if (context.ActionArguments.ContainsKey("partitionKey") &&
                context.ActionArguments.ContainsKey("rowKey"))
            {
                var partitionKey           = context.ActionArguments["partitionKey"].ToString();
                var rowKey                 = context.ActionArguments["rowKey"].ToString();
                var objectHistoryDetailRaw = await _objectHistoryClient.GetObjectHistoryDetailRawAsync(partitionKey, rowKey);

                if (!TestSecurityValidationToken(context, objectHistoryDetailRaw))
                {
                    return;
                }
            }
            else
            {
                foreach (var key in context.ActionArguments.Keys)
                {
                    if (type.IsAssignableFrom(context.ActionArguments[key].GetType()))
                    {
                        var partitionKey = (context.ActionArguments[key] as ObjectLogsPostParameters).PartitionKey;

                        try
                        {
                            var objectHistoryDetailRaw = await _objectHistoryClient.GetObjectHistoryDetailRawAsync(partitionKey);

                            if (!TestSecurityValidationToken(context, objectHistoryDetailRaw))
                            {
                                return;
                            }
                        }
                        catch (Exception ex)
                        {
                            return;
                        }
                    }
                }
            }

            await next();
        }
Esempio n. 2
0
        public async Task <IActionResult> GetLog(string partitionKey, string rowKey)
        {
            var entities = await _objectHistoryClient.GetObjectHistoryDetailRawAsync(partitionKey, rowKey);

            return(Ok(entities));
        }