Example #1
0
        public static async Task <bool> IsRequestAuthorizedAsync(IHttpRequestWrapper request, bool ignoreRequestAge = false)
        {
            var headers     = request.Headers;
            var queryParams = request.QueryParameters;
            // See what type of auth scheme is applied to this request
            bool sharedKeyRequest = SharedKey.IsRequestType(headers);
            bool sasRequest       = SharedAccessSignature.IsRequestType(queryParams);

            if (sharedKeyRequest && sasRequest)
            {
                // Can't be a SAS & SharedKey Authorization together
                return(false);
            }
            else if (sasRequest)
            {
                return(await SharedAccessSignature.IsAuthorizedAsync(request, headers, queryParams, ignoreRequestAge));
            }
            else if (sharedKeyRequest)
            {
                return(SharedKey.IsAuthorized(request, headers, queryParams, ignoreRequestAge));
            }
            // Anonymous
            return(await Anonymous.IsAuthorizedAsync(request));
        }