我已经内置了我需要部署的应用程序Asp.net C#应用程序。它是18个月前由承包商编写的,直到现在才开始部署。我们登录页面上的代码隐藏文件包含以下代码:
//if for some reason javascript is not enabled, redirect back to login page
sb.AppendLine( "<head><meta http-equiv=\"refresh\" content=\"30;URL=./?logout=1\"><link rel=\"Stylesheet\" href=\"./Styles/Main.css\" type=\"text/css\" /></head>" );
sb.AppendLine( "<body onload=\"document.forms['loginForm'].submit()\">" );
我无法看到这两个字符串是如何完成评论所说的完成的,我不确定他们甚至在做什么。是否应该有一个“if”声明?
答案 0 :(得分:1)
<meta http-equiv="refresh" content="30;URL=./?logout=1">
告诉浏览器在30秒内重定向到./?logout=1。
<body onload="document.forms['loginForm'].submit()">
查找名为loginForm的表单并提交。
如果页面加载并且表单在30秒内提交,则一切都将按预期工作。如果没有,则假定未启用JavaScript。这是一个糟糕的解决方案。没有Javascript的用户必须等待30秒才能被重定向。并且在网络连接缓慢的情况下存在误报的可能性。
尝试使用noscript标签:
<noscript><meta http-equiv="refresh" content="0;URL=./?logout=1"></noscript>
答案 1 :(得分:0)
我认为它使用javascript来提交登录表单,如果未启用javascript则不会发生这种情况,在这种情况下,元标记将刷新页面并注销。