我使用的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);
}
答案 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。