先说需求:
  有个JSP的门户,想让用户在门户登陆后,打开本机(客户端)的一个C/S程序,C/S就自动登陆.C/S是用Delphi做的.
我现在的想法是,作一个ActiveX控件,在JSP上用JavaScript获取URL里的认证码,传入这个ActiveX控件里面,然后当C/S程序启动时调用一下这个控件,获取传出参数.ActiveX(VB)的代码:
<code>Option ExplicitStatic strURL As StringSub setURL(str As String)
    strURL = str
End SubFunction getURL() As String
    getURL = strURL
End Function</code> 两个方法,一个获得javascript传入的字符串,也就是验证码,一个是返回这个值
测试JS这么写的:
function getUrlParam()
{
var pageUrl=""; 
pageUrl = window.location;
pageUrl = pageUrl.toString();

var obj=new ActiveXOBject("getURL.dll"); 
obj.setURL(pageUrl);
return obj.getURL();
}
问题:
1. return obj.getURL(); 是想在页面上显示一下结果.但是触发脚本时报有错误
2. 如果这时我用C/S的delphi调用这个控件,obj这个对象如何传递?我总不能在delphi中new一下,这样肯定是不一样的对象,无法取得值的.现在头疼的就是这个控件如何持久地保存这个字符串,使得可以传递到其它程序?!
望各位不吝赐教

解决方案 »

  1.   

    楼主的方法是不是很容易泄密呢?
    而且也非常麻烦。方法其实很简单,B/S 和 C/S 都是用一个数据库吧,至少 C/S 应该能够访问B/S的数据库吧。
    在JSP里登录成功后,给该用户设置一个登录成功状态和表明是哪台机器的信息。
    当C/S再启动时,在要求用户信息之前,先去数据库取一下状态,及是否是本机,如果是成功状态且是本机,那么就自动登录进去到工作界面,否则,显示登录界面让用户输入信息。
      

  2.   

    忘了说明,抱歉,正好是C/S和B/S不是一个库,是分开的,而且必须分开.C/S的库我可以完全操作:获得用户名和密码,而B/S我只能获得用户名,密码都得不到.只要在B/S上能登陆,我就认为他可以登陆C/S,不过给的是个guest权限
      

  3.   

    那JSP能修改吗? 能看到吗?这要是都不行,面对一个不能修改的黑箱,那还整啥啊。
      

  4.   

    简单点,你看看有没有COOKIE什么的可利用吧。
    总之,得围绕这个具体的JSP进行分析了(如果不能修改它的话)。
    如果能修改,则好得多。
    明天再看吧,得走了。