如何将经过身份验证的用户重定向回原始页面?

时间:2014-04-14 20:44:21

标签: javascript jquery dotnetnuke

我使用的Login模块与预期的有点不同。我希望登录模块可以在所有页面上使用,而不是仅将登录模块放在单独的页面上。问题是所有页面上的登录模块都没有收到重定向信息。该信息由将用户发送到单独登录页面的Javascript生成。

如何让登录模块将经过身份验证的用户重定向到他们登录的页面?最好系统地使用DNN,但我不会使用Javascript甚至jQuery来完成这项工作。


解决方案基于Kyle Needham的回复

if( window.location.href == 'http://website.com/authenticated' ){
    window.location.href = sessionStorage.getItem('login_redirect');
}
else{
    sessionStorage.setItem('login_redirect', window.location.href);
}

2 个答案:

答案 0 :(得分:1)

您可能希望使用称为“auth_redirect”的(会话)cookie,该值将是将用户发送到登录模块的URL。另外,您可以使用?redirectUrl=/redirect/to/this/page/after/login查询字符串

重定向到登录模块

会话Cookie apporach(使用$.cookie

$.cookie("auth_redirect", document.location.href);
// now redirect to login page
if (login === done) 
    document.location.href = $.cookie("auth_redirect") || "/";

答案 1 :(得分:1)

在用户登录的页面上,您可以设置sessionStorage项目。

sessionStorage.setItem('login_redirect', window.location.href);

然后,一旦登录完成,您可以将它们重定向到他们使用登录的页面。

window.location.href = sessionStorage.getItem('login_redirect');


可以找到dom存储的基本指南here