登录重定向后如何传递用户名?

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 中的任何内容,那么我该怎么做呢?

app1app2 均内置于 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。

以上是关于登录重定向后如何传递用户名?的主要内容,如果未能解决你的问题,请参考以下文章

正确登录后如何重定向用户?

Django:登录后重定向到上一页

Symfony - 如何将用户重定向到登录后访问的最后一个页面?

使用 nodejs/express 登录后将用户重定向到 Angular 应用程序

Spring Security:登录后如何重定向到 REST url

如何在登录后重定向到我想要的页面并在成功登录后显示用户名