Intraweb中如何读取session?(100分)

  • 主题发起人 主题发起人 Riantwin
  • 开始时间 开始时间
R

Riantwin

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ASP设计登陆程序(输入用户名和密码),进入之后运行intraweb设计的
ISAPI程序,如何在ISAPI中读取ASP的登陆信息?假如禁止了cookie,
如何取得session值?
 
例如有这样一个URL地址:
http://www.SomePlace.com/SomeApplicationName?value1=Dog&value2=Cat
而想着在IntraWeb中取得这些参数的值,要如何实现呢?
可以按以下的思路:
procedure TIndex.IWAppFormCreate(Sender: TObject);
var ValueString1, ValueString2: string;
begin ValueString1 := WebApplication.RunParams.Values[ 'value1' ]; 
ValueString2 := WebApplication.RunParams.Values[ 'value2' ];
end;

是不是你要的?
 
to Riantwin:
intraweb不可能访问asp的session;
你可以象xzh2000说的那样传参数。
to xzh2000:
1 你的思路是对的,但是代码不能写在IWAppFormCreat事件里,应该写在onNewsession
里。因为一旦代码执行到IWAppFormCreat事件,那么IWAppForm必然显示,你想判断用
户合法之后显示别的页面是不可能的。
2 另外,参数会在客户端显示,你必须将它们去掉。
 
谢谢xzh2000,你提供了一个很好的思路。
我的想法是这样的:首先通过login.asp登陆,并将username、password保存在cookie中。
登陆成功之后,然后允许点击链接打开intraweb写的ISAPI。由于在ISAPI中需要判断该usernamse
是否存在,所以还要取得username。
yeskert1说得对,intraweb不可能访问asp的session。所以我想通过保存在cookie中的值来
取得username和password。我不知道在不关闭IE的情况下,cookie是否继续存在,如果存在
我接着用WebApplication.Request.cookieField.values['username']取得username的值,
不知道这种想法是否可行,但我取出的username总是为空值。
请yeskert和各位高手指点,谢谢!

 
ISAPI能否从Login.asp中取得username、password的session值?
急盼yeskert和各位高手指点,谢谢!
 
我认为可以利用webapplication.request.queryField 或request.query获取
 
intarweb中,用以下方法均无法获得session值
WebApplication.Request.ContentFields.Values['username'];
WebApplication.Request.CookieFields.Values['username'];
WebApplication.Request.QueryFields.Values['username'];

请问如何读取ASP中的session值?
 
请xzh2000和yeskert1两位,能详细说说你们的实现方法吗?
假如URL地址是http://www.SomePlace.com/Login.asp,登陆成功后,链接
http://www.SomePlace.com/mydll.dll/start
如何传递参数,如何隐含参数?

 
to Riantwin:
请到
http://www.delphibbs.com/keylife/iblog_addblog.asp
看一看
 
非常感谢yeskert1,我会认真看的。
 
问题解决了吗?
 
to yeskert1:
看了你的思路,不过我不喜欢使用jscript,就写了一段代码将userid与password
进行编码,然后解码,一样看不出来。
 
to yeskert1
谢谢!参数传递的问题解决了,可是隐含username和password效果不是很好。我是这样传递参数的
http://www.SomePlace.com/mydll.dll/start?username=<%=session("username")%>&Password=<%=session("password")%>
在打开的时候就会看到username和password,请问有什么好方法?

 
to Riantwin
我的方法在我的笔记里有,你已经看过了。
别的方法暂时没有。
 
新建一个IntraWebApplication 之后,在ServerController 中向导会自动生成如下的语句:
TUserSession = class
public
end;
在此处你就可以添加自己的用户个人信息,比如用户名,口令,以及权限管理等属性,比如在Login 里面,如
果通过了口令字验证,就可以添加下列语句:
UserSession.UserName:=trim(edtUser.text);
UserSession.UserPass:=Trim(edtPass.Text);
UserSession 可以在程序的整个过程中维持,可以写数据库或者文件中,什么时候想用拿来使就可以,相当方便,
而且远比Cookie 要安全得多。
 
楼主,加密你的password不就可以啦。
惨了,我有时可以运行调试程序,有时不行啦,估计是IE的问题,
但我以前的IW程序运行就没有问题。
 
多人接受答案了。
 
后退
顶部