Beispiel #1
0
        public static Task <bool> CheckAccessAsync(this HttpRequestMessage request, IEnumerable <Claim> actions, IEnumerable <Claim> resources)
        {
            var authorizationContext = new ResourceAuthorizationContext(
                request.GetOwinContext().Authentication.User ?? Principal.Anonymous,
                actions,
                resources);

            return(request.CheckAccessAsync(authorizationContext));
        }
Beispiel #2
0
        public static Task <bool> CheckAccessAsync(this HttpRequestMessage request, string action, params string[] resources)
        {
            var authorizationContext = new ResourceAuthorizationContext(
                request.GetOwinContext().Authentication.User ?? Principal.Anonymous,
                action,
                resources);

            return(request.CheckAccessAsync(authorizationContext));
        }
Beispiel #3
0
        public static Task <bool> CheckAccessAsync(this HttpRequestMessage request, string action, params string[] resources)
        {
            var user = request.GetRequestContext().Principal as ClaimsPrincipal;

            user = user ?? Principal.Anonymous;

            var ctx = new ResourceAuthorizationContext(user, action, resources);

            return(request.CheckAccessAsync(ctx));
        }
        protected virtual bool CheckAccess(HttpRequestMessage request, Claim[] actions, params Claim[] resources)
        {
            var task = request.CheckAccessAsync(actions, resources);

            if (task.Wait(5000))
            {
                return task.Result;
            }
            else
            {
                throw new TimeoutException();
            }
        }
        private async Task<bool> CheckAccessAsync(HttpRequestMessage request, Claim[] actions, params Claim[] resources)
        {
            var task = request.CheckAccessAsync(actions, resources);
            if (await Task.WhenAny(task, Task.Delay(5000)).ConfigureAwait(false) == task)
            {
                // Task completed within timeout.

                // The task may have faulted or been cancelled.
                // We re-await the task so that any exceptions/cancellation is rethrown.
                var result = await task.ConfigureAwait(false);

                return result;
            }
            else
            {
                // timeout logic
                throw new TimeoutException();
            }
        }
Beispiel #6
0
 public static bool CheckAccess(this HttpRequestMessage request, string action, params string[] resources)
 {
     return(AsyncHelper.RunSync(() => request.CheckAccessAsync(action, resources)));
 }