【发布时间】:2018-11-14 11:56:47
【问题描述】:
我有一个登录控制器,它带有一个 post 操作,在成功登录后重定向到主页。我正在使用以下代码进行重定向,这在 Chrome 和 Firefox 中运行良好。但在 IE 和 EDGE 中不重定向,并且未设置响应 cookie
private ActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToRoute("default", new { controller = "", action = "" });
}
}
我的登录操作
public IActionResult Login(string userName, string password)
{
try
{
if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password))
throw new InvalidOperationException("Username/Password can not be empty");
var session = CreateSession(userName, password);
var returnUrl = Request.Query["returnUrl"];
return RedirectToLocal(returnUrl);
}
catch (Exception ex)
{
ModelState.AddModelError("Login", ex.Message);
}
return View();
}
我正在使用我自己的会话管理,我为其设置会话 cookie,如下所示
CookieOptions option = new CookieOptions();
option.Path = AppPath;
option.Domain = AppHost;
httpContextAccessor.HttpContext.Response.Cookies.Append(AppSessionToken, "SomeSessionId", option);
【问题讨论】:
标签: c# asp.net asp.net-core-mvc