Exemplo n.º 1
0
        public virtual async Task <TenantRoute> GetRouteAsync(Microsoft.Owin.IOwinRequest owinRequest)
        {
            var parts = owinRequest.Path.Value.Trim('/').Split('/');

            var route = new TenantRoute();

            if (parts.Any())
            {
                route.TenantId = parts[0];
            }
            if (parts.Length > 1)
            {
                route.Resource = parts[1];
            }

            route.Purpose       = GetPurpose(owinRequest);
            route.ContainerName = await ContainerNameService.GetContainerNameAsync(route.TenantId, route.Purpose, route.Resource);

            route.Host = await StorageAccountResolverService.GetBlobEndpointAsync(route);


            var resourceId   = string.Format("{0}/{1}", route.TenantId, route.Resource);
            var idx          = owinRequest.Uri.AbsoluteUri.IndexOf(resourceId) + resourceId.Length;
            var pathAndQuery = owinRequest.Uri.AbsoluteUri.Substring(idx);
            var qIdx         = pathAndQuery.IndexOf('?');

            route.Path = Uri.UnescapeDataString((qIdx > -1 ? pathAndQuery.Substring(0, qIdx) : pathAndQuery).TrimStart('/'));

            return(route);
        }
Exemplo n.º 2
0
        private static string BuildUrl(
            HttpRequest request,
            bool websocket,
            string path)
        {
            string uiPath = request.PathBase.Value
                            .Substring(0, request.PathBase.Value.Length - 11);
            string scheme = request.Scheme;

            if (websocket)
            {
                scheme = request.IsHttps() ? "wss" : "ws";
            }

#if ASPNETCLASSIC
            Uri uri        = request.Uri;
            var uriBuilder = new UriBuilder(scheme, uri.Host, uri.Port,
                                            uiPath + path);

            return(uriBuilder.ToString().TrimEnd('/'));
#else
            return(UriHelper.BuildAbsolute(
                       scheme, request.Host, uiPath + path)
                   .TrimEnd('/'));
#endif
        }
Exemplo n.º 3
0
        public static bool IsHttps(
            this HttpRequest request)
        {
#if ASPNETCLASSIC
            return(request.IsSecure);
#else
            return(request.IsHttps);
#endif
        }
Exemplo n.º 4
0
        // GET api/values
        public IEnumerable <string> Get()
        {
            IOwinContext context = Request.GetOwinContext();

            Microsoft.Owin.IOwinRequest request = base.Request.GetOwinContext().Request;
            if (context.Authentication.User != null)
            {
                System.Diagnostics.Debug.WriteLine("HERE");
            }

            return(new string[0]);
        }
Exemplo n.º 5
0
        // GET api/values
        public IEnumerable <string> Get()
        {
            if ((base.Request != null) && (base.Request.GetOwinContext() != null))
            {
                IOwinContext context = Request.GetOwinContext();

                Microsoft.Owin.IOwinRequest request = base.Request.GetOwinContext().Request;
                if (context.Authentication.User != null)
                {
                    Console.WriteLine("HERE");
                }
            }

            return(new string[] { "value1", "value2" });
        }
Exemplo n.º 6
0
        public async Task <System.Web.Cors.CorsPolicy> GetCorsPolicyAsync(Microsoft.Owin.IOwinRequest request)
        {
            if (IsPathAllowed(request))
            {
                var origin = request.Headers["Origin"];
                if (origin != null)
                {
                    if (policy.AllowedOrigins.Contains(origin, StringComparer.OrdinalIgnoreCase))
                    {
                        return(Allow(origin));
                    }

                    if (policy.PolicyCallback != null)
                    {
                        if (await policy.PolicyCallback(origin))
                        {
                            return(Allow(origin));
                        }
                    }
                }
            }
            return(null);
        }