delphi程序与asp程序共用同一个数据库,可以在本地delphi程序中及服务器的asp程序中分别进行sql操作。本地delphi程序的界面中,有用户名username跟密码password的值。用户名与密码均存放在服务器的sql中,asp程序在服务器上。比如edit1中的值是username,edit2中的值是password,服务器ASP地址是:http://192.168.100.88/admin.asp
我想实现的是:当用户输入正确的用户名密码登录本地delphi系统成功以后,同时会打开地址为:http://192.168.100.88/admin.asp的页面并且由于登录delphi系统的时候,输入了正确的用户名及密码,所以,打开http://192.168.100.88/admin.asp的页面的时候,会自动读取本地cookie,根据相应的cookie用户的权限,进入admin.asp进行操作,而不再需要单独登录admin.asp系统进行操作。也就是delphi系统与asp系统同步登陆。请问这个功能如何实现?谢谢。
我想实现的是:当用户输入正确的用户名密码登录本地delphi系统成功以后,同时会打开地址为:http://192.168.100.88/admin.asp的页面并且由于登录delphi系统的时候,输入了正确的用户名及密码,所以,打开http://192.168.100.88/admin.asp的页面的时候,会自动读取本地cookie,根据相应的cookie用户的权限,进入admin.asp进行操作,而不再需要单独登录admin.asp系统进行操作。也就是delphi系统与asp系统同步登陆。请问这个功能如何实现?谢谢。
解决方案 »
- Borland 的中文网站都没有了?
- 我想让DateTimePicker1.date默认为当前系统时间
- 如何判断TmenuItem是否被点击?
- WEBSNAP中的权限级别问题
- 请问dbgrid对应的数据表的某个字段为0/1,可以把其cell显示为checkbox?
- Dos 下turbo pascal 如何判断是否有键盘按下?
- 求救!除了TFtpClient控件外,还有那些For D6的断点续传的FTP控件,在线!
- access数据的通配符是??
- 怎样在TStringGrid控件中按ctrl键选择多行啊???
- 如何封装企业逻辑?
- SQL Server2000 dateadd() 参数遇到的问题.
- webbrowser打开网页成功,源代码都下载完毕了却不显示,是什么情况?
session.values['test']:='';
能否举个例子说明一下,给点代码,谢谢。而且,我不是想让delphi读取asp的cookie,而是想让asp读取delphi传递来的写到cookie里面的值。
private int checkUser(string name, string pswd)
{
Session["UserName"] = name;
Session["PassWord"] = pswd;
if (name == "admin1" && pswd == "truepswd") return 1;
if (name == "admin2" && pswd == "truepswd") return 2;
return 0;
} protected void Page_Load(object sender, EventArgs e)
{
int Power = checkUser(Request["name"] != null ? Request["name"].ToString() : "", Request["pswd"] != null ? Request["pswd"].ToString() : "");
Response.Write("<div>名字:" + Session["UserName"].ToString() + "</div>");
Response.Write("<div>密码:" + Session["PassWord"].ToString() + "</div>");
Response.Write("<div>权限:" + Power.ToString() + "</div>");
}
Delphi中打开admin.aspx页面:(这是用QueryString明传密码演示的)
uses ShellAPI;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(0,'open','http://192.168.100.88/admin.aspx?name=admin1&pswd=truepswd',nil,nil,SW_SHOWNORMAL);
end;
不过,此url容易被复制重用(帐号、密码使用密文也一样可以被复制重用)方法2、delphi用QueryString放帐号、密码来“隐藏”访问一个特定的asp页面,返回一个此asp生成的随机数
再用QueryString放随机数来打开asp工作页面(此页面能查询到特定页面生成并暂存的随机数来判断querystring的随机数是否有效,判断完即删除此随机数)
这个url就不怕复制,因为无法重用
是的,我说的session是asp的谢谢各位,我再研究研究,多弄几回测试测试去。
end;为了安全,可以将那二个值进行加密,传到网页,ASP再解密好了
谢谢,这样做可以,我也明白了。但是还有个问题。就是ShellExecute(0,'open','http://192.168.100.88/admin.aspx?name=admin1&pswd=truepswd',nil,nil,SW_SHOWNORMAL);中,用户名跟密码的值admin1与truepswd是变量,比如我要从edit1,edit2中取,这个要怎么写呢?我写成:ShellExecute(0,'open','http://192.168.100.88/admin.aspx?name='''+edit1.text+'''&pswd='''+edit2.text+'''',nil,nil,SW_SHOWNORMAL);则提示错误。