public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordCommand command)
        {
            command.UserId = int.Parse(GetUser(RequestExtensions.GetToken(Request.Headers["Authorization"].ToString())) ?? string.Empty);
            await _passwordService.ChangePassword(command);

            return(Ok());
        }
        protected T GetFromQueryString <T>() where T : new()
        {
            var obj        = new T();
            var properties = typeof(T).GetProperties();

            foreach (var property in properties)
            {
                var valueAsString = HttpContext.Current.Request.QueryString[property.Name];

                if (property.Name.ToLower() == "filter")
                {
                    valueAsString = RequestExtensions.GetFilterRequest(HttpContext.Current.Request.Url.Query);
                }

                if (valueAsString == null)
                {
                    continue;
                }

                if (property.PropertyType == typeof(string))
                {
                    property.SetValue(obj, valueAsString, null);
                }

                else if (property.PropertyType == typeof(int))
                {
                    var value = int.Parse(valueAsString);
                    property.SetValue(obj, value, null);
                }
            }

            return(obj);
        }
示例#3
0
        public void ParsesCookieValue()
        {
            const string cookie = "foo=bar";
            var          value  = RequestExtensions.GetCookieValue(cookie);

            Assert.Equal("bar", value);
        }
示例#4
0
        private void HandleContext(HttpListenerContext context)
        {
            try
            {
                string traceId, contextId;
                bool?  isActive;
                RequestExtensions.ExtractFromHttpHeaders(context.Request.Headers, out traceId, out contextId, out isActive);
                using (var serverContext = Trace.ContinueContext(traceId, contextId, isActive ?? false, isRoot: false))
                {
                    serverContext.RecordTimepoint(Timepoint.ServerReceive);
                    serverContext.RecordAnnotation(Annotation.RequestUrl, context.Request.Url.ToString());

                    using (var streamReader = new StreamReader(context.Request.InputStream, Encoding.UTF8))
                    {
                        var message = streamReader.ReadToEnd();
                        taskQueue.PushTask(new RemoteTask(message));
                        context.Response.StatusCode = 202;
                        context.Response.Close();
                    }

                    serverContext.RecordTimepoint(Timepoint.ServerSend);
                }
            }
            catch (Exception e)
            {
                Console.Out.WriteLine("Unhandled server exception: {0}", e);
            }
            finally
            {
                synchronizer.ServerEndProcessQuerySignal.Set();
            }
        }
        private async Task CheckIfTokenIsValid()
        {
            var ipAddress = RequestExtensions.GetIpAddressFromHeader(HttpContext);
            var userAgent = RequestExtensions.GetUserAgent(HttpContext);
            var token     = await GetTokenFromAuthHeader();

            await _authenticationService.CheckIpAddressOrDevice(ipAddress, userAgent, token);
        }
        protected override IEnumerable <Rendering> GetRenderings(
            XElement layoutDefinition,
            BuildPageDefinitionArgs args)
        {
            // replaced parser with custom one
            XmlBasedRenderingParser parser = new CDNXmlBasedRenderingParser();

            foreach (XElement element1 in layoutDefinition.Elements("d"))
            {
                XElement deviceNode = element1;
                Guid     deviceId   = deviceNode.GetAttributeValueOrEmpty("id").ToGuid();

                // replace layout with CDN layout
                Guid layoutId = RequestExtensions.IsContextRequestForDynamicData()
                                    ? Guid.Parse(Constants.Layout.DefaultCDNLayoutId)
                                    : deviceNode.GetAttributeValueOrEmpty("l").ToGuid();

                IEnumerable <RenderingInfo> dynamicRenderingsInfo = RequestExtensions.GetDynamicRenderingsInfo();

                yield return(this.GetRendering(deviceNode, deviceId, layoutId, "Layout", parser));

                foreach (XElement element2 in deviceNode.Elements("r"))
                {
                    // replacing placeholders to match CDN layout placeholder keys
                    var rendering = this.GetRendering(element2, deviceId, layoutId, element2.Name.LocalName, parser);

                    if (RequestExtensions.IsContextRequestForDynamicData())
                    {
                        var idMatchRendering = dynamicRenderingsInfo
                                               .FirstOrDefault(r => r.RenderingId.ToGuid().Equals(rendering.UniqueId));

                        if (idMatchRendering != null)
                        {
                            rendering["Placeholder"] = Constants.Layout.DefaultCDNPlaceholder;
                        }
                        else
                        {
                            var placeholderMatchRendering = dynamicRenderingsInfo
                                                            .FirstOrDefault(
                                r =>
                                rendering.Placeholder.StartsWith(r.Placeholder) &&
                                !rendering.Placeholder.Equals(r.Placeholder));

                            if (placeholderMatchRendering != null)
                            {
                                rendering["Placeholder"] = rendering["Placeholder"]
                                                           .Replace(
                                    placeholderMatchRendering.Placeholder.TrimStart('/'),
                                    Constants.Layout.DefaultCDNPlaceholder);
                            }
                        }
                    }

                    yield return(rendering);
                }
            }
        }
示例#7
0
 public IActionResult Index()
 {
     //bool b = RequestExtensions.IsMobileBrowser(HttpContext.Request);
     if (RequestExtensions.IsMobileBrowser(HttpContext.Request))
     {
         return(Redirect("/Mobile"));
     }
     return(View());
 }
示例#8
0
        /*
         * Checks if a user is on mobile before sending
         * them to the stocks page.
         *
         * If a mobile user is detected, it redirects them
         * to a mobile friendly page.
         */

        public ActionResult Stocks()
        {
            if (RequestExtensions.IsMobileBrowser(HttpContext.Request) == true)
            {
                return(View("Stocks.Mobile"));
            }
            else
            {
                return(View("Stocks"));
            }
        }
示例#9
0
 public override void Process(RenderRenderingArgs args)
 {
     if (RequestExtensions.IsContextRequestForDynamicData() &&
         Context.PageMode.IsNormal &&
         args.Rendering != null &&
         args.Rendering.RenderingType != "Layout" &&
         args.Rendering.Placeholder.Equals(CDN.Constants.Layout.DefaultCDNPlaceholder))
     {
         args.Writer.Write($"<div data-rendering-id=\"{args.Rendering.UniqueId}\">");
     }
 }
示例#10
0
        public override Task ValidateClientRedirectUri(OAuthValidateClientRedirectUriContext context)
        {
            if (context.ClientId == _publicClientId)
            {
                if (RequestExtensions.IsUrlLocalToHost(null, context.RedirectUri))
                {
                    context.Validated();
                }
            }

            return(Task.FromResult <object>(null));
        }
示例#11
0
 public ActionResult forpdfview(string id)
 {
     if (RequestExtensions.fBrowserIsMobile())
     {
         //โทรศัพท์
         return(RedirectToAction("ShowPdf", "Projects", new { name = id.ToString(), chk = true }));
     }
     else
     {
         //เดสท๊อป
         return(RedirectToAction("ShowPdf", "Projects", new { name = id.ToString(), chk = false }));
     }
 }
 public override void Process(ActionExecutedArgs args)
 {
     if (RequestExtensions.IsContextRequestForDynamicData())
     {
         // no cache for dynamic data
         args.Context.RequestContext.HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
     }
     else
     {
         // all pages are cached for 1 minute
         args.Context.RequestContext.HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.Public);
         args.Context.RequestContext.HttpContext.Response.Cache.SetMaxAge(TimeSpan.FromMinutes(1));
     }
 }
示例#13
0
        public override void Process(GetRendererArgs args)
        {
            if (args.Result != null)
            {
                return;
            }

            if (Context.PageMode.IsNormal &&
                !RequestExtensions.IsContextRequestForDynamicData() &&
                args.Rendering.IsAlwaysDynamicallyLoaded())
            {
                args.Result = this.GetRenderer(args.Rendering, args);
            }
        }
示例#14
0
        public Startup(IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            _LoggerFactory = loggerFactory;

            // Set up configuration sources.
            var builder = new ConfigurationBuilder()
                          .SetBasePath(env.ContentRootPath)
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                          .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                          .AddEnvironmentVariables();

            builder.AddEnvironmentVariables();
            Configuration = builder.Build();
            ServiceConfiguration.LoadConfig(Configuration.GetSection("ServiceConfiguration"));
            ServiceConfiguration.LoggerFactory = _LoggerFactory;
            BusinessLogic.BusinessLogicFactory.Initialise();
            RequestExtensions.SetEnvironment(env.IsDevelopment());
        }
示例#15
0
 public ActionResult Stocks(Items item)
 {
     if (ModelState.IsValid)
     {
         var url = this.Request.Path;
         return(RedirectToAction("SingleItem", "Items", item, url));
     }
     else
     {
         if (RequestExtensions.IsMobileBrowser(HttpContext.Request) == true)
         {
             return(View("Stocks.Mobile"));
         }
         else
         {
             return(View("Stocks"));
         }
     }
 }
示例#16
0
        public static void ClientServerCase()
        {
            const string url      = "http://localhost:12346/";
            var          listener = new HttpListener();

            listener.Prefixes.Add(url);
            listener.Start();

            var serverTask = Task.Factory.StartNew(() =>
            {
                var context = listener.GetContext();
                var request = context.Request;
                string traceId, contextId;
                bool?isActive;
                RequestExtensions.ExtractFromHttpHeaders(request.Headers, out traceId, out contextId, out isActive);
                using (var serverContext = Trace.ContinueContext(traceId, contextId, isActive ?? false, isRoot: false))
                {
                    serverContext.RecordTimepoint(Timepoint.ServerReceive);
                    context.Response.Close();
                    serverContext.RecordTimepoint(Timepoint.ServerSend);
                }
            });

            using (var clientContext = Trace.CreateRootContext("Client"))
            {
                clientContext.RecordTimepoint(Timepoint.ClientSend);
                clientContext.RecordAnnotation(Annotation.RequestUrl, url);
                var clientRequest = (HttpWebRequest)WebRequest.Create(url);
                clientRequest.SetTracingHeaders(clientContext);
                clientRequest.GetResponse();
                serverTask.Wait();
                clientContext.RecordTimepoint(Timepoint.ClientReceive);
            }

            listener.Close();
        }
示例#17
0
        private static bool ValidateRedirectUri(string clientId, string redirectUri)
        {
            if (clientId != "self")
            {
                return(false);
            }

            if (RequestExtensions.IsUrlLocalToHost(null, redirectUri))
            {
                return(true);
            }

            Uri uri;

            if (Uri.TryCreate(redirectUri, UriKind.Absolute, out uri))
            {
                if (uri.Scheme == "ms-app")
                {
                    return(true);
                }
            }

            return(false);
        }
示例#18
0
        public void ShouldGetFilterRequestGetEmptyString(string queryString)
        {
            var filterRequest = RequestExtensions.GetFilterRequest(queryString);

            Assert.IsEmpty(filterRequest);
        }
示例#19
0
        public void ShouldGetFilterRequestWithAlternateParamName(string queryString, string expectedValue)
        {
            var filterRequest = RequestExtensions.GetFilterRequest(queryString, "opportunityFilter");

            Assert.AreEqual(expectedValue, filterRequest);
        }
示例#20
0
        public void ShouldGetFilterRequest(string queryString, string expectedValue)
        {
            var filterRequest = RequestExtensions.GetFilterRequest(queryString);

            Assert.AreEqual(expectedValue, filterRequest);
        }