gpt4 book ai didi

asp.net-mvc - 从 OnActionExecuting 重定向到外部 url?

转载 作者:行者123 更新时间:2023-12-03 23:05:58 27 4
gpt4 key购买 nike

我需要从 OnActionExecuting 方法重定向到外部 url(比如“www.google.com”)。现在我正在使用这样的东西:

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!HttpContext.Current.User.Identity.IsAuthenticated)
{
var redirectUrl = "www.google.com";

try
{
var isAjaxRequest = filterContext.HttpContext.Request.IsAjaxRequest();

if (isAjaxRequest)
{
filterContext.HttpContext.Response.StatusCode = SessionController.CustomHttpRedirect;
filterContext.HttpContext.Response.StatusDescription = redirectUrl;

filterContext.Result = new JsonResult
{
Data = new { Redirect = redirectUrl },
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
else
{
filterContext.Result = new RedirectResult(redirectUrl, true);

}

return;
}
else
{
throw new LoggedOutException();
}
}
catch
{
throw new LoggedOutException();
}
}
}

问题是它没有将我重定向到“www.google.com”,而是重定向到“ http://localhost:1234/www.google.com”(我在本地尝试)。
有什么办法可以解决这个问题吗?
谢谢

最佳答案

问题很容易解决:

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!HttpContext.Current.User.Identity.IsAuthenticated)
{
var redirectUrl = "http://www.google.com";

try
{
var isAjaxRequest = filterContext.HttpContext.Request.IsAjaxRequest();

if (isAjaxRequest)
{
filterContext.HttpContext.Response.StatusCode = SessionController.CustomHttpRedirect;
filterContext.HttpContext.Response.StatusDescription = redirectUrl;

filterContext.Result = new JsonResult
{
Data = new { Redirect = redirectUrl },
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
else
{
filterContext.Result = new RedirectResult(redirectUrl, true);

}

return;
}
else
{
throw new LoggedOutException();
}
}
catch
{
throw new LoggedOutException();
}
}
}

我所要做的就是当我将值分配给“redirectUrl”时,我让你把 http 放在 wwww 之前。如果您使用 SSL 连接并且您尝试从 mvc 重定向到另一个域,则必须放置此选项。

关于asp.net-mvc - 从 OnActionExecuting 重定向到外部 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32220691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com