登录重定向后如何传递用户名?
Posted
技术标签:
【中文标题】登录重定向后如何传递用户名?【英文标题】:How to pass username after login redirect? 【发布时间】:2018-03-27 21:11:49 【问题描述】:我有 2 个应用程序:一个用于登录 (app1),另一个用于我想要的其他东西 (app2)。 app1 内置于 ASP.NET Boilerplate 中,我想做的是在使用此应用程序登录后,我想重定向到 app2。到目前为止一切都很好,我只是使用returnUrl
参数重定向到app2。问题是我想将一些登录信息传递给 app2,例如 username
。它不应该改变 app1 中的任何内容,那么我该怎么做呢?
app1 和 app2 均内置于 MVC 5 中。
【问题讨论】:
【参考方案1】:在 app1 中,用户可以从 loginResult.User
获得,正如您在 this line 中看到的那样:
await SignInAsync(loginResult.User, loginResult.Identity, loginModel.RememberMe);
您可以在检查returnUrl
后附加username
作为查询参数:
if (string.IsNullOrWhiteSpace(returnUrl))
returnUrl = Request.ApplicationPath;
else
returnUrl += "?username=" + loginResult.User.UserName; // This line
然后在 app2 中检索它。
【讨论】:
感谢您的回答 =)。我已经测试过了,它可以工作。但是如果我想将用户名作为标题传递?我正在查看这一行 return Json(new AjaxResponse TargetUrl = returnUrl );。如何更改 AjaxResponse 标头? 我不确定,你也许可以访问HttpContext.Current.Response
。
我已经尝试过了,但是 HttpContext 并没有改变 AjaxResponse 中的任何内容 =(。顺便说一句,我没有找到 HttpContext.Current,我只是尝试了 HttpContext.Response。以上是关于登录重定向后如何传递用户名?的主要内容,如果未能解决你的问题,请参考以下文章
Symfony - 如何将用户重定向到登录后访问的最后一个页面?
使用 nodejs/express 登录后将用户重定向到 Angular 应用程序