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\""); }
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); }
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; }
public JsonRedirectResult(RedirectResult redirectResult) { Data = new { redirect = true, href = redirectResult.Url }; }
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\""); }
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 : "~/"); }
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); }
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; }
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); }
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); }
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(); }