3

我正在尝试创建一个在默认浏览器中打开网页并登录的 html 文件,该页面位于公司 Intranet 中,并且是 .aspx 结构的。

该页面包含用户、密码字段和完成登录过程的链接。相关的源行是

<a id="lnkAccedi" href="javascript:__doPostBack('lnkAccedi','')" 
  style="background-color:Transparent;font-family:Arial;">Accedi...</a> 

我已经测试过的简单代码是

<script language="JavaScript">
  window.open("intranet_web_page","_self");
</script>

其中 intranet_web_page 是我的登录页面的 URL。我试图将网页源中定义的函数称为“__doPostBack('lnkAccedi','');” 在我的 html 文件的脚本标记中,但根本不起作用。

我怎样才能做到这一点?

提前致谢。

4

2 回答 2

1

Do NOT do any kind of authentication with JavaScript!!!

Do your login authentication on the ASP code-behind and then pass a success condition where you can use response.write to open a new window. I do a similar thing opening a messenger window. On login success I have the following code:

Response.Write("<script> var win =window.open('chat.aspx','mywindow','width=700,height=450,left=800,top=10,location=1'); win.close();</script>") //closes the window if it is already open
Response.Write("<script>window.open('chat.aspx','mywindow','width=700,height=450,left=800,top=10,location=1')</script>") //open the window

Again, that is how I call the script from the code-behind. Hopefully that points you in the right direction!

于 2013-10-28T14:26:04.417 回答
1

其实我不是 ASP 用户,但我相信这__doPostBack是一个用户定义的函数,你应该将它定义为 script 标签下的 javascript 函数。
有一点,我认为__doPostBack不需要参数。

因此,如果您想在授权后创建重定向用户而不更改 url,您可以使用 jquery post 方法发布您的数据,然后在回调函数下检索服务器响应以检测该用户是否被授权
我会给你示例代码,但实际上我还没有测试它
在 HTML 中:

<form name="loginform" action="test.asp" method​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​="POST">
username : <input type="text"  name="username" placeholder="please put your username here." /><br>
password : <input type="password" name="password" placeholder="your password here" /><br/>
<a id="lnkAccedi" href="javascript:__doPostBack" style="background-color:Transparent;font-family:Arial;">Accedi...</a>
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

在脚本上:

function __doPostBack() {
    var usernamestr = document.loginform.username.value;
    var passwordstr = document.loginform.password.value;
    $.post("authorize.asp", { username: usernamestr , password: passwordstr },
       function(data) {
           if(data = "success") {       
               window.open('newwindow.asp','_self');
           } else {
               alert("Username or password was wrong");
           }
    });
}​

最后,建议: 我认为您不必在前端控制登录过程,因为它非常危险,任何人都可以重新创建您的代码并入侵您的服务器,因为它是客户端。您应该将进程控制权交给后端服务器。

于 2012-12-12T16:40:41.853 回答