public override void OnAuthorization(AuthorizationContext filterContext)
        {
            base.OnAuthorization(filterContext);
            if (filterContext.HttpContext.User.Identity.IsAuthenticated)
            {
                var userId = filterContext.HttpContext.User.Identity.GetUserId();
                var userManager = filterContext.HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
                var currentUser = userManager.FindById(userId);
                if (currentUser.EmailConfirmed == false)
                {

                    //取得 URLHelper
                    var urlHelper = new UrlHelper(filterContext.RequestContext);

                    //將路徑名稱組合
                    var currentControllerAndActionName =
                        string.Concat(filterContext.RouteData.Values["controller"],
                        "_",
                        filterContext.RouteData.Values["action"]);

                    //明確開放[登入][登出][EMAIL驗證]
                    var allowAction = new[] { "Account_Login", "Account_LogOff", "Account_VerifyMail" };

                    if (allowAction.Contains(currentControllerAndActionName) == false)
                    {
                        //所有沒有通過EMAIL驗證的都導向驗證頁面(請視專案需求調整)
                        var redirect = new RedirectResult(urlHelper.Action("VerifyMail", "Account"));
                        filterContext.Result = redirect;
                    }

                }
            }
        }
        public void WithUrl_GivenExpectedUrl_ShouldPass()
        {
            ActionResult result = new RedirectResult("/abc");

            result.Should().BeRedirectResult()
                .WithUrl("/abc");
        }
 public void BePartialView_GivenNotPartial_ShouldFail()
 {
     ActionResult result = new RedirectResult("/");
     Action a = () => result.Should().BePartialViewResult();
     a.ShouldThrow<Exception>()
             .WithMessage("Expected ActionResult to be \"PartialViewResult\", but found \"RedirectResult\"");
 }
Esempio n. 4
0
        public void IsRightRealUrl()
        {
            //------------------------------Організація--------------------------------
            //Створення імітованого сховища
            var mock = new Mock<IUrlRepository>();
            //Заповнення сховища значеннями
            var urls = new Url[]
            {
                new Url {RealUrl = "RealUrl1", ShortenedUrl = "11111"},
                new Url {RealUrl = "RealUrl2", ShortenedUrl = "22222"},
                new Url  {RealUrl = "RealUrl3", ShortenedUrl = "33333"}
            }.AsQueryable();

            mock.Setup(u => u.Urls).Returns(urls);
            //Створення контролера
            var target = new HomeController(mock.Object);

            //-------------------------------Дія----------------------
            //отримати "справжні" посиланн за коротким посиланням
            var shorts = urls.Select(u => u.ShortenedUrl).ToArray();
            var result = new RedirectResult[urls.Count()];
            for (int i = 0; i < urls.Count(); i++)
            {
                result[i] = (RedirectResult) target.Redirection(shorts[i]);
            }

            //--------------------------------Твердження------------------------
            //перевірка на тотожність повернутих "справжніх" посилань
            Assert.AreEqual("RealUrl1", result[0].Url);
            Assert.AreEqual("RealUrl2", result[1].Url);
            Assert.AreEqual("RealUrl3", result[2].Url);
        }
        public void WithPermanent_GivenExpectedUrl_ShouldPass()
        {
            ActionResult result = new RedirectResult("/abc", true);

            result.Should().BeRedirectResult()
                .WithPermanent(true);
        }
Esempio n. 6
0
        public void Process(MethodInterceptionArgs args, ILogger log)
        {
            try
            {
                args.Proceed();
            }
            catch (DefaultException ex)
            {
                log.Error(string.Format("Mensaje: {0} Trace: {1}", ex.Message, ex.StackTrace));

                var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
                var url = urlHelper.Action("OperationError", "Error", new { area = "" });
                url += "/" + ex.Message;
                var result = new RedirectResult(url);

                args.ReturnValue = result;
            }
            catch (Exception ex)
            {
                log.Error(string.Format("Mensaje: {0} Trace: {1}", ex.Message, ex.StackTrace));

                var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
                var url = urlHelper.Action("Index", "Error", new { area = "" });

                var result = new RedirectResult(url);

                args.ReturnValue = result;
            }
        }
        /// <summary>
        /// 处理异常
        /// </summary>
        /// <param name="exception"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        private bool HandleException(Exception exception, out ActionResult result)
        {

            if (exception is ApiResultException)
            {
                var apiRet = ((ApiResultException)exception).Result;
                if (apiRet.code == 401)
                {
                    result = new RedirectResult("http://i.play7th.com/account/login?returnUrl=" + this.HttpContext.Request.Url.ToString());
                    return true;
                }
                if (this.HttpContext.Request.IsAjaxRequest())
                {
                    result = new JsonResult() { Data = (((ApiResultException)exception).Result), JsonRequestBehavior = JsonRequestBehavior.AllowGet };
                    return true;
                }
            }
            else if (exception is System.AggregateException)
            {
                exception = exception.InnerException;
                return this.HandleException(exception, out result);
            }
            else if (exception is EfException)
            {
                if (this.HttpContext.Request.IsAjaxRequest())
                {
                    result = new JsonResult() { Data = new ApiResult(7001, exception.Message), JsonRequestBehavior = JsonRequestBehavior.AllowGet };
                }
            }
            result = null;
            return false;
        }
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (string.IsNullOrEmpty(_ignoreParameter) || string.IsNullOrEmpty(filterContext.RequestContext.HttpContext.Request.QueryString[_ignoreParameter]))
            {
                if (!BrowserUtility.BrowserUtility.SideInWeixinBrowser(filterContext.HttpContext))
                {
                    //TODO:判断网页版登陆状态
                    ActionResult actionResult = null;
                    if (!string.IsNullOrEmpty(RedirectUrl))
                    {
                        actionResult = new RedirectResult(RedirectUrl);
                    }
                    else
                    {
                        actionResult = new ContentResult()
                        {
                            Content = _message
                        };
                    }

                    filterContext.Result = actionResult;
                }
            }

            base.OnActionExecuting(filterContext);
        }
 protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
 {
     base.HandleUnauthorizedRequest(filterContext);
     var urlnext = NeedBase64EncryptJumpUrl ? Convert.ToBase64String(Encoding.GetBytes(filterContext.HttpContext.Request.Url.ToString())) : filterContext.HttpContext.Request.Url.ToString();
     var urllogin = string.Format("{0}?{1}={2}", HandleUnauthorizedAddress, JumpConnector, urlnext);
     RedirectResult ret = new RedirectResult(urllogin);
     filterContext.Result = ret;
 }
Esempio n. 10
0
 public JsonRedirectResult(RedirectResult redirectResult)
 {
     Data = new
     {
         redirect = true,
         href = redirectResult.Url
     };
 }
Esempio n. 11
0
 public override void OnActionExecuting(ActionExecutingContext filterContext)
 {
     if (!HttpContext.Current.User.Identity.IsAuthenticated)
     {
         var rres = new RedirectResult("~/login");
         filterContext.Result = rres;
     }
 }
        public void WithPermanent_GivenUnexpectedUrl_ShouldFail()
        {
            ActionResult result = new RedirectResult("/abc", true);

            Action a = () => result.Should().BeRedirectResult()
                    .WithPermanent(false);
            a.ShouldThrow<Exception>()
                    .WithMessage("Expected RedirectResult.Permanent to be False but was True");
        }
        public void WithUrl_GivenUnexpectedUrl_ShouldFail()
        {
            ActionResult result = new RedirectResult("/abc");

            Action a = () => result.Should().BeRedirectResult()
                    .WithUrl("/xyz");
            a.ShouldThrow<Exception>()
                    .WithMessage("Expected RedirectResult.Url to be \"/xyz\" but was \"/abc\"");
        }
Esempio n. 14
0
        public AuthorizeState(string returnUrl, OpenAuthenticationStatus openAuthenticationStatus)
        {
            Errors = new List<string>();
            AuthenticationStatus = openAuthenticationStatus;

            //in way SEO friendly language URLs will be persisted
            if (AuthenticationStatus == OpenAuthenticationStatus.Authenticated)
                Result = new RedirectResult(!string.IsNullOrEmpty(returnUrl) ? returnUrl : "~/");
        }
Esempio n. 15
0
        public ActionResult Login(string txtLogin, string txtPassword)
        {
            SecurityServices serv = new SecurityServices();
              Usuario user;
              ActionResult result = new EmptyResult();

              try
              {
            user = serv.Login(txtLogin, txtPassword);
            if (user != null)
            {
              //  Opcion 1: terminamos aca y no pedimos perfil
              //  result = View("LoginOK", user);

              //  TODO acomodar autenticacion para que no se repita el codigo

              //  Opcion 2: redirigimos a otra vista que nos permite elegir el perfil (salvo que tenga un unico perfil...)
              if (user.Perfiles.Count > 1)
              {
            result = View("PerfilSelect", user);
              }
              else
              {
            //  Guardamos los datos de sesion en el "contexto" de la sesion establecida (similar al Context que usamos en WPF)
            //
            Session["SESION_USER"] = serv.CrearSesion(user, user.Perfiles.Single());

            FormsAuthentication.SetAuthCookie(user.Login, false);

            string redirectUrl = FormsAuthentication.GetRedirectUrl(user.Login, false);

            if (redirectUrl == "/" || string.IsNullOrEmpty(redirectUrl))
            {
              //  creamos una nueva vista strong-typed para incorporar la Sesion
              result = View("LoginOK_v2", Session["SESION_USER"] as Sesion);
            }
            else
            {
              result = new RedirectResult(redirectUrl);
            }
              }
            }
            else
            {
              //  TODO: armar paginas de error para los casos de credenciales incorrectas o excepcion
              //  TODO: y un controlador que ademas realice el log del problema?
              //
              result = new HttpUnauthorizedResult("Credenciales incorrectas");
            }
              }
              catch (Exception ex)
              {
            //  redireccionar a una pagina de error!!
            result = new HttpUnauthorizedResult("Estas al horno!!!");
              }
              return result;
        }
        public void ProductContainerController_Show_ReturnsRedirectToProductSearch()
        {
            var categoryContainer = new ProductContainer();
            var redirectResult = new RedirectResult("~/search");
            A.CallTo(() => _uniquePageService.RedirectTo<ProductSearch>(null)).Returns(redirectResult);

            RedirectResult show = _controller.Show(categoryContainer);

            show.Should().Be(redirectResult);
        }
Esempio n. 17
0
 public static IRelyingParty GetRelyingPartyElement(this string id, out ActionResult action)
 {
     IRelyingParty rp = StsConfiguration<RelyingParty>.Current.RelyingParties.FindByName(id);
     action = null;
     if (rp == null)
     {
         action = new RedirectResult(OnErrorRedirectUrl);
     }
     return rp;
 }
Esempio n. 18
0
        public static IEnumerable<IPolicyViolationHandler> CreatePolicyViolationHandlers()
        {
            var viewResult = new ViewResult { ViewName = "SomeViewName" };
            var redirectResult = new RedirectResult("http://localhost/");

            var violationHandlers = new List<IPolicyViolationHandler>
            {
                new DenyAnonymousAccessPolicyViolationHandler(viewResult),
                new DenyAuthenticatedAccessPolicyViolationHandler(redirectResult)
            };

            return violationHandlers;
        }
        public async Task<ActionResult> SendContact(ContactFormModel model)
        {
            var form = Service.GetForm(SiteContext.Current, model.form_type);
            if (form != null)
            {
                form.PostedSuccessfully = true;
                // TODO: add sending email to a store owner
            }

            string url = Request.UrlReferrer.GetLeftPart(UriPartial.Path);
            url += (Request.QueryString.ToString() == "") ? "?contact_posted=true" : "?" + Request.QueryString.ToString() + "&contact_posted=true";
            var result = new RedirectResult(url);
            return await Task.FromResult(result);
        }
Esempio n. 20
0
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Session != null)
        {
            if (filterContext.HttpContext.Session.IsNewSession)
            {
                ActionResult result = null;
                var sessionCookie = filterContext.HttpContext.Request.Headers["Cookie"];
                if ((sessionCookie != null) && (sessionCookie.IndexOf("ASP.NET_SessionId") >= 0))
                {
                    string redirectTo = "~/home/index";
                    result = new RedirectResult(redirectTo);
                    return;
                }
            }
        }

        base.OnActionExecuting(filterContext);
    }
        public ActionResult Login(AccountModel accountModel, string returnUrl)
        {
            ActionResult result;

            if (ModelState.IsValid && AuthHelper.LoginIsValid(accountModel))
            {
                AuthHelper.SaveAccountModelToFormsAuthCookie(Response, accountModel);

                // we don't use RedirectFromLoginPage() because it would overwrite the cookie
                result = new RedirectResult(returnUrl);
            }
            else
            {
                ViewBag.FailedLogin = true;
                ViewBag.ReturnUrl = returnUrl;
                result = View(accountModel);
            }

            return result;
        }
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            HttpContext ctx = HttpContext.Current;

            if (ctx.Session != null)
            {
                // check if a new session id was generated
                if (ctx.Session.IsNewSession)
                {
                    // If it says it is a new session, but an existing cookie exists, then it must
                    // have timed out
                    string sessionCookie = ctx.Request.Headers["Cookie"];
                    if (null == sessionCookie)
                    {
                        FormsAuthentication.SignOut();

                        const string loginUrl = @"~/login/auth";
                        var rr = new RedirectResult(loginUrl);
                        filterContext.Result = rr;

                    }
                    if ((null != sessionCookie) && (sessionCookie.IndexOf("ASP.NET_SessionId") <= 0))
                    {
                        FormsAuthentication.SignOut();
                        const string loginUrl = @"~/login/auth";
                        var rr = new RedirectResult(loginUrl);
                        filterContext.Result = rr;
                    }
                }
                else if (ctx.Session["usuario"] == null)
                {
                    const string loginUrl = @"~/login/auth";
                    var rr = new RedirectResult(loginUrl);
                    filterContext.Result = rr;
                }
            }
            base.OnActionExecuting(filterContext);
        }
        public ActionResult SubmitButton()
        {
            try
            {
                //user validation
                if ((_services.WorkContext.CurrentCustomer.IsGuest() && !_orderSettings.AnonymousCheckoutAllowed))
                    return RedirectToRoute("Login");

                var settings = _services.Settings.LoadSetting<PayPalExpressPaymentSettings>(_services.StoreContext.CurrentStore.Id);

                //var cart = _workContext.CurrentCustomer.ShoppingCartItems.Where(sci => sci.ShoppingCartType == ShoppingCartType.ShoppingCart).ToList();
                var cart = _services.WorkContext.CurrentCustomer.GetCartItems(ShoppingCartType.ShoppingCart, _services.StoreContext.CurrentStore.Id);

                if (cart.Count == 0)
                    return RedirectToRoute("ShoppingCart");

                var currency = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId).CurrencyCode;

                if (String.IsNullOrEmpty(settings.ApiAccountName))
                    throw new ApplicationException("PayPal API Account Name is not set");
                if (String.IsNullOrEmpty(settings.ApiAccountPassword))
                    throw new ApplicationException("PayPal API Password is not set");
                if (String.IsNullOrEmpty(settings.Signature))
                    throw new ApplicationException("PayPal API Signature is not set");

                var provider = _paymentService.LoadPaymentMethodBySystemName("Payments.PayPalExpress", true);
                var processor = provider != null ? provider.Value as PayPalExpress : null;
                if (processor == null)
                    throw new SmartException("PayPal Express Checkout module cannot be loaded");

                var processPaymentRequest = new PayPalProcessPaymentRequest();

                //Get sub-total and discounts that apply to sub-total
                decimal orderSubTotalDiscountAmountBase = decimal.Zero;
                Discount orderSubTotalAppliedDiscount = null;
                decimal subTotalWithoutDiscountBase = decimal.Zero;
                decimal subTotalWithDiscountBase = decimal.Zero;
                _orderTotalCalculationService.GetShoppingCartSubTotal(cart,
                    out orderSubTotalDiscountAmountBase, out orderSubTotalAppliedDiscount,
                    out subTotalWithoutDiscountBase, out subTotalWithDiscountBase);

                //order total
                decimal resultTemp = decimal.Zero;
                resultTemp += subTotalWithDiscountBase;

                // get customer
                int customerId = Convert.ToInt32(_services.WorkContext.CurrentCustomer.Id.ToString());
                var customer = _customerService.GetCustomerById(customerId);

                //Get discounts that apply to Total
                Discount appliedDiscount = null;
                var discountAmount = _orderTotalCalculationService.GetOrderTotalDiscount(customer, resultTemp, out appliedDiscount);

                //if the current total is less than the discount amount, we only make the discount equal to the current total
                if (resultTemp < discountAmount)
                    discountAmount = resultTemp;

                //reduce subtotal
                resultTemp -= discountAmount;

                if (resultTemp < decimal.Zero)
                    resultTemp = decimal.Zero;

                decimal tempDiscount = discountAmount + orderSubTotalDiscountAmountBase;

                resultTemp = _currencyService.ConvertFromPrimaryStoreCurrency(resultTemp, _services.WorkContext.WorkingCurrency);
                if (tempDiscount > decimal.Zero)
                {
                    tempDiscount = _currencyService.ConvertFromPrimaryStoreCurrency(tempDiscount, _services.WorkContext.WorkingCurrency);
                }

                processPaymentRequest.PaymentMethodSystemName = "Payments.PayPalExpress";
                processPaymentRequest.OrderTotal = resultTemp;
                processPaymentRequest.Discount = tempDiscount;
                processPaymentRequest.IsRecurringPayment = false;

                //var selectedPaymentMethodSystemName = _workContext.CurrentCustomer.GetAttribute<string>(SystemCustomerAttributeNames.SelectedPaymentMethod, _storeContext.CurrentStore.Id);

                processPaymentRequest.CustomerId = _services.WorkContext.CurrentCustomer.Id;
                this.Session["OrderPaymentInfo"] = processPaymentRequest;

                var resp = processor.SetExpressCheckout(processPaymentRequest, cart);

                if (resp.Ack == AckCodeType.Success)
                {
                    processPaymentRequest.PaypalToken = resp.Token;
                    processPaymentRequest.OrderGuid = new Guid();
                    processPaymentRequest.IsShippingMethodSet = PayPalHelper.CurrentPageIsBasket(this.RouteData);
                    this.Session["OrderPaymentInfo"] = processPaymentRequest;

                    _genericAttributeService.SaveAttribute<string>(customer, SystemCustomerAttributeNames.SelectedPaymentMethod, "Payments.PayPalExpress",
                        _services.StoreContext.CurrentStore.Id);

                    var result = new RedirectResult(String.Format(
                        PayPalHelper.GetPaypalUrl(settings) +
                        "?cmd=_express-checkout&useraction=commit&token={0}", resp.Token));

                    return result;
                }
                else
                {
                    var error = new StringBuilder("We apologize, but an error has occured.<br />");
                    foreach (var errormsg in resp.Errors)
                    {
                        error.AppendLine(String.Format("{0} | {1} | {2}", errormsg.ErrorCode, errormsg.ShortMessage, errormsg.LongMessage));
                    }

                    _logger.InsertLog(LogLevel.Error, resp.Errors[0].ShortMessage, resp.Errors[0].LongMessage, _services.WorkContext.CurrentCustomer);

                    NotifyError(error.ToString(), false);

                    return RedirectToAction("Cart");
                }
            }
            catch (Exception ex)
            {
                _logger.InsertLog(LogLevel.Error, ex.Message, ex.StackTrace, _services.WorkContext.CurrentCustomer);

                NotifyError(ex.Message, false);

                return RedirectToAction("Cart");

            }
        }
            public async Task WillReturnTheResultFromTheFileStorageService()
            {
                ActionResult fakeResult = new RedirectResult("http://aUrl");
                var fileStorageSvc = new Mock<IFileStorageService>();
                fileStorageSvc.Setup(x => x.CreateDownloadFileActionResultAsync(new Uri("http://fake"), It.IsAny<string>(), It.IsAny<string>()))
                    .CompletesWith(fakeResult);
                
                var service = CreateService(fileStorageSvc: fileStorageSvc);

                var result = await service.CreateDownloadPackageActionResultAsync(new Uri("http://fake"), CreatePackage()) as RedirectResult;

                Assert.Equal(fakeResult, result);
            }
		public override void ExecuteResult(ControllerContext context)
		{
			var manager = ReturnUrlManagerFactory.GetDefault();
			var result = new RedirectResult(manager.GetReturnUrl());
			result.ExecuteResult(context);
		}
Esempio n. 26
0
 protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
 {
     RedirectResult redirect = new RedirectResult("/bwum/account/login");
     filterContext.Result = redirect;
 }
        public ActionResult SignIn()
        {
            string state = Guid.NewGuid().ToString();
            Session[Utils.Constants.stateTagStr] = state;

            UriBuilder redirectUri = new UriBuilder(Url.Action("GetToken", "Account", null, "https"));
            Uri authUri = this.GetAuthorizationUri("https://graph.windows.net/", state, redirectUri.Uri.ToString());

            RedirectResult redirect = new RedirectResult(authUri.ToString());

            return redirect;
        }
 public RedirectResultAnd(RedirectResult redirectResult)
 {
     this.redirectResult = redirectResult;
 }
            public async Task GetPackageReturns404IfPackageIsNotFound()
            {
                // Arrange
                const string packageId = "Baz";
                const string packageVersion = "1.0.1";
                var actionResult = new RedirectResult("http://foo");

                var controller = new TestableApiController(MockBehavior.Strict);
                controller.MockPackageService.Setup(x => x.FindPackageByIdAndVersion(packageId, packageVersion, false)).Returns((Package)null).Verifiable();
                controller.MockPackageFileService.Setup(s => s.CreateDownloadPackageActionResultAsync(It.IsAny<Uri>(), packageId, packageVersion))
                              .Returns(Task.FromResult<ActionResult>(actionResult))
                              .Verifiable();

                // Act
                var result = await controller.GetPackage(packageId, packageVersion);

                // Assert
                Assert.IsType<RedirectResult>(result); // all we want to check is that we're redirecting to storage
                //var httpNotFoundResult = (RedirectResult)result;
                //Assert.Equal(String.Format(Strings.PackageWithIdAndVersionNotFound, packageId, packageVersion), httpNotFoundResult.StatusDescription);
                //controller.MockPackageService.Verify();
            }
 public void BeRedirect_GivenRedirect_ShouldPass()
 {
     ActionResult result = new RedirectResult("/");
     result.Should().BeRedirectResult();
 }