<SCRIPT LANGUAGE=javascript>
<!--
function gook() {
f1.pwhidden.value = encode(f1.pwshow.value, parseInt(f1.picnum.value));
f1.submit();
}
function encode(datastr, bassnum) {
var tempstr;
var tchar;
var newdata = ""; for (var i = 0; i < datastr.length; i++)
{
tchar = 65535 + bassnum - datastr.charCodeAt(i);
tchar = tchar.toString(); while(tchar.length < 5)
{
tchar = "0" + tchar;
} newdata = newdata + tchar;
} return newdata;
}
//-->
</SCRIPT>   
     
<form name="f1" method="post" action="http://10.33.129.2/mail/default.asp" arget="_blank">
<tr align="left" valign="top"> 
<td height="20>
用户名:<input name="username" type="text" size="10">
<input type="hidden" name="pwhidden"></td> 
</tr> 
<tr align="left" valign="bottom">  
<td height="20">密&nbsp;&nbsp;码:
<input name="pwshow" type="password" size="10">
<input type="hidden" name="picnum" value="7652"></td> 
</tr>          
<tr>
<td height="20" align=center>
<input type="button" value="提交" onClick="javascript:gook()"></td>
</tr>   
</form> 只是我现在用的邮件系统,是在首页里面输入用户名和密码后直接登陆邮件系统的,没有到邮件系统的登陆页面登陆,在asp下面是可以用的,但是现在我的网页转.net了,我想在一个imagebutton的click事件下面实现登陆,小弟想了半天没有结果,请高手指点,谢谢!!!

解决方案 »

  1.   

    用HTML就可以搞定了,还用那么麻烦吗?
    <a href="#" onclick="javascript:gook();"><img src="......"></a>
      

  2.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168
      

  3.   

    难道就没有在imagebutton下实现的方法吗?
      

  4.   

    用ImageButton多好,如果想用IMG,<img src="..../*.bmp" OnClick='gook()';>就可以
      

  5.   

    不是很明白楼主的问题是什么,猜一下了就是在imagebutton的click事件下进行相应处理之后再转向就行了
      

  6.   

    对啊,就是在imagebutton的click事件下进行相应处理之后再转向,但是具体应该怎样做呢?那段javascript应该怎样在click事件下处理,然后怎样post到http://10.33.129.2/mail/default.asp,小弟愚笨,请兄台明示。
      

  7.   

    那就好办了三,你把pwshow与picnum都设为TextBox服务器控件,picnum的Visible设为flase.
    提交的时时侯就可以取出来了。
    把你的两个js函数改成C#的函数,
    原来的pwhidden可以不用,而改为如下
    private string gook() {
    return encode(pwshow.Text, (int)picnum.Text));

    }
    在imagebutton的click调用。
    Response.Redirect("http://10.33.129.2/mail/default.asp?pwhidden="+gook())
      

  8.   

    charCodeAt可以用
    Substring(i,1)代替。
      

  9.   

    那就好办了三,你把pwshow与picnum都设为TextBox服务器控件,picnum的Visible设为flase.
    提交的时时侯就可以取出来了。
    把你的两个js函数改成C#的函数,
    原来的pwhidden可以不用,而改为如下
    private string gook() {
    return encode(pwshow.Text, (int)picnum.Text));

    }
    在imagebutton的click调用。
    charCodeAt可以用
    Substring(i,1)代替。Response.Redirect("http://10.33.129.2/mail/default.asp?pwhidden="+gook())
      

  10.   

    不好意思哈,charCodeAt原来是:返回一个整数,代表指定位置上字符的 Unicode 编码
    那么应该这样实现相同功能。for (var i = 0; i < datastr.length; i++)
    {
    System.Text.UTF8Encoding ue=new UTF8Encoding();
    byte[] buffer=ue.GetBytes(datastr.Substring(i,1));
    tchar = 65535 + bassnum - buffer.GetValue(0).ToString();;
      

  11.   

    楼上的兄弟一定是重庆的,听口气就知道,老乡好人做到底,可不可以告诉我encode那段应该怎样用c#写,我基本不懂java,比如for (var i = 0; i < datastr.length; i++)这段用c的话应该是for (int i = 0; i < this.datastr.Text.length; i++)吗?,以外我的意思是全部用服务段控件就两个textbox和一个imagebutton,(int)picnum.Text其实就是7652,可以写死的。
      

  12.   

    唉,反正闲着也是闲着,给你写一下。
    private string gook() 
    {
    return encode(pwshow.Text, Convert.ToInt32(picnum.Text));
    }
    private string encode(string datastr, int bassnum) 
    {
    string tchar;
    string newdata = ""; for (int i = 0; i < datastr.Length; i++)
    {
    System.Text.UTF8Encoding ue=new UTF8Encoding();
    byte[] buffer=ue.GetBytes(datastr.Substring(i,1)); tchar = Convert.ToString(65535 + bassnum - Convert.ToInt32(buffer.GetValue(0).ToString())); while(tchar.Length < 5)
    {
    tchar = "0" + tchar;
    } newdata = newdata + tchar;
    } return newdata;
    }
      

  13.   

    兄弟不对啊,Response.Redirect("http://10.33.129.2/mail/default.asp?pwhidden="+gook())只是获得了pwhidden的值传到http://10.33.129.2/mail/default.asp,并不是form的post方法啊。怎样模拟asp下form的post方法把username和pwhidden传到http://10.33.129.2/mail/default.asp才是我要的结果,楼上兄弟麻烦你了!!
      

  14.   

    .net的模式采用的postback,模式,也就说默认的form的post方向是本省页面。
    而asp则可以自己定义post到哪个页面。
      

  15.   

    这个我知道,我要的就是要在click事件下面把username和pwhidden post到http://10.33.129.2/mail/default.asp,Response.Redirect("http://10.33.129.2/mail/default.asp?pwhidden="+gook())只是传参,不是post方法。
      

  16.   

    Response.Redirect("http://10.33.129.2/mail/default.asp?username="+this.txtusername.Text+"&picnum=7652&pwhidden="+gook())还是不可以???附default的部分代码:
    <%
    Response.ExpiresAbsolute = Now() - 1
    Response.Expires = 0
    Response.CacheControl = "no-cache"
    %><%
    un = trim(request("username"))
    pw = trim(request("pwhidden"))
    saveUser = trim(request("saveUser"))
    cleancookies = trim(request("cleancookies"))if cleancookies = "true" then
    Response.Cookies("accounts") = ""
    end ifshowaccounts = trim(request.Cookies("accounts"))Response.Cookies("name") = ""
    dim ei
    dim errmsg
    errmsg = trim(request("errstr"))
    if IsEmpty(Application("em_MaxMPOP3")) and IsEmpty(Application("em_MaxSigns")) then
    TimeDelaySeconds(5) dim mam
    set mam = server.createobject("easymail.AdminManager")
    mam.Load if mam.IsLoadOK = true then
    Application("em_MaxMPOP3") = mam.MaxMPOP3
    Application("em_MaxSigns") = mam.MaxSigns
    Application("em_SystemAdmin") = mam.SystemAdmin
    Application("em_EnableBBS") = mam.EnableBBS
    Application("em_Enable_SignHold") = mam.Enable_SignHold
    Application("em_Enable_FreeSign") = mam.Enable_FreeSign
    Application("em_Enable_SignWithDomainUser") = mam.Enable_SignWithDomainUser
    Application("em_Enable_SignNumberLimit") = mam.Enable_SignNumberLimit
    Application("em_SignNumberLimitDays") = mam.SignNumberLimitDays
    Application("em_Enable_ShareFolder") = mam.Enable_ShareFolder
    Application("em_Enable_SignEnglishName") = mam.Enable_SignEnglishName
    Application("em_LogPageKSize") = mam.LogPageKSize
    Application("em_TestAccounts") = mam.TestAccounts
    Application("em_SignMode") = mam.SignMode
    Application("em_SignWaitDays") = mam.SignWaitDays
    Application("em_am_Name") = mam.am_Name
    Application("em_am_Accounts") = mam.am_Accounts set mam = nothing
    else
    set mam = nothing
    response.redirect "outerr.asp?errstr=" & Server.URLEncode("超时, 请重试") & "&" & getGRSN()
    end if
    end if
    if un <> "" and pw <> "" and Request.ServerVariables("REQUEST_METHOD") = "POST" then
    un = LCase(un)
    pw = strDecode(pw, trim(request("picnum")))
    if un <> Application("em_SystemAdmin") then
    dim webkill
    set webkill = server.createobject("easymail.WebKill")
    webkill.Load rip = Request.ServerVariables("REMOTE_ADDR") if webkill.IsKill(rip) = true then
    set webkill = nothing
    response.redirect "outerr.asp?errstr=" & Server.URLEncode("拒绝IP地址 " & rip & " 访问") & "&" & getGRSN()
    end if set webkill = nothing
    end if
    set ei = Application("em")
    Session("wem") = ""
    Session("mail") = ""
    Session("tid") = ""
    Session("SecEx") = ""
    Session("scpw") = ""
    Session("cert_ca") = ""
    dim pwwt
    pwwt = ei.PassWordWaitMinute dim checkret
    checkret = ei.CheckPassWordEx(un, pw, Request.ServerVariables("REMOTE_ADDR")) if checkret = 0 then
    if un = Application("em_SystemAdmin") and ei.CheckAdminIP(Request.ServerVariables("REMOTE_ADDR")) = false then
    set ei = nothing errmsg = "管理员登录IP地址错误。"
    else
    Session("tid") = ei.Login(un)
    Session("wem") = un
    Session("mail") = ei.GetUserMail(un)
    set ei = nothing dim mri
    set mri = server.createobject("easymail.MoreRegInfo")
    mri.LoadRegInfo un
    mri.CurrentlyIP = Request.ServerVariables("REMOTE_ADDR")
    mri.SaveRegInfo
    set mri = nothing
    if saveUser = "true" then
    Response.Cookies("accounts") = un
    Response.Cookies("accounts").Expires = DateAdd("y", 5, Now())
    end if SecEx = trim(request("SecEx"))
    if SecEx = "true" then
    Session("SecEx") = "1"
    else
    Session("SecEx") = "0"
    end if
    dim userweb
    set userweb = server.createobject("easymail.UserWeb")
    userweb.Load Session("wem") ShowLanguage = userweb.ShowLanguage set userweb = nothing if ShowLanguage = 1 then
    Response.Redirect "en/welcome.asp"
    else
    Response.Redirect "welcome.asp"
    end if
    end if
    elseif checkret = 2 then
    set ei = nothing errmsg = "连续三次输入密码错误,请过" & pwwt & "分钟后再试。"
    else
    set ei = nothing errmsg = "错误的用户名或密码!请再次输入。"
    end if
    end ifif trim(request("logout")) = "true" then
    if Session("wem") <> "" then
    set ei = Application("em")
    ei.Logout Session("wem"), Session("tid")
    set ei = nothing
    end if Session("wem") = ""
    Session("mail") = ""
    Session("tid") = ""
    Session("SecEx") = ""
    Session("scpw") = ""
    Session("cert_ca") = ""
    end if
    %>