请问c#如何调用session里面对象的方法

ljh 2006-09-03 06:32:30
在asp里面,session对象可以用来保存一个com对象,然后通过session对想来调用这个com对象的方法,但是c#并不支持后期绑定,请问有什么办法可解决这个问题?
...全文
2091 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuchangmao 2006-09-05
  • 打赏
  • 举报
回复
Session的存储还是要考虚到性能问题,别过多的使用,会占用大量的服务器内存!
flyinging 2006-09-05
  • 打赏
  • 举报
回复
一楼正解
lxp916 2006-09-05
  • 打赏
  • 举报
回复
别用session
ASPNET_TO_VC_YUN 2006-09-05
  • 打赏
  • 举报
回复
我也来接点分 一楼正解~~~
没有必要写一堆 倒是麻烦了~~~
sweetsbaby 2006-09-05
  • 打赏
  • 举报
回复
一楼简单明了,就正确的说明了问题
altair_520 2006-09-05
  • 打赏
  • 举报
回复
支持
qinhl99 2006-09-05
  • 打赏
  • 举报
回复
一楼的正确
greennetboy 2006-09-05
  • 打赏
  • 举报
回复
我晕!
fangxinggood(我的老婆是困困)
差点看错了!
heqi915 2006-09-05
  • 打赏
  • 举报
回复
学习
heyidan 2006-09-04
  • 打赏
  • 举报
回复
把session變量強制轉換成你要的那個類的對象後,然後再打個點兒應該就能出來了。如果不能出來的話,就賦給一個該類的對象,然後再打個點兒什麽一系列的應該都能出來那個方法名兒了吧!哈哈。。。非常之easy也,哈
iflang 2006-09-04
  • 打赏
  • 举报
回复
一楼正确
whu531 2006-09-04
  • 打赏
  • 举报
回复
是不是反射技术能够取代Session
~~~~好像是这么说的吧!
jc15271149 2006-09-04
  • 打赏
  • 举报
回复
保持队型
机器人 2006-09-04
  • 打赏
  • 举报
回复
用什么反射,首先session里放什么东西都这个系统设计者最初设计好的,每个页面都要遵循这一设计。如果说你在某个页面里偷偷放什么东西进去,别的程序员怎么知道?Session里放什么东西一定要设计时定下来。所有开发者都要清楚里面有什么,应该放什么。这样才不会乱。
whu531 2006-09-04
  • 打赏
  • 举报
回复
Session对象

【知识点回顾】
1、 变量的实质:是一个存储单元在内存空间中的一个符号化的地址。
2、 变量的作用域:是指定变量的有效范围。
分为:
过程级变量:作用域仅局限于该过程或函数内部。
脚本级变量:作用域为当前的整个ASP页面。
【引入】
从这里我们可以看出,变量的作用域最大也仅是当前页面范围。这给页面与页面之间的数据传递和记录会话状态造成一定的困难。为此,ASP提供了Session和Application对象以及ASP的工程文件global.asa。
ASP允许开发者利用会话这一工具从一个页面到另一个页面跟踪用户。当用户打开一个建立会话的ASP网页时,会话被建立,用户在该站点从一个页面浏览到另一个页面时,会话将会继续,直到该用户长时间不访问该站点或关闭该站点的所有窗口,或者打开了一个终止会话的ASP网页。
【新课】
1、 创建Session对象
我们可以利用Session对象存储普通变量或对象变量,创建出具有Session级作用域的变量。Session对象创建的变量我们可以用于存储和记录用户信息。
创建方法:Session(“变量名”)
说明:
创建之后,就可将Session(”变量名”)作为一个整体,按照普通变量的用法来使用。
例:若要创建一个Session级的变量passflg,并且给该变量赋初值为0。
<% Session(“passflg”)=0 %>
2、 Session对象的属性
1)、SessionID:
返回当前会话的会话标识符。它是由服务器在生成会话时,通过复杂算法产生的一组数值,它惟一地标识了每个用户的会话。
例:输出当前会话的标识符
<%=Session.SessionID%>
2)、TimeOut:
以分钟为单位定义Session会话超时的时间期限。
会话超时的时限可在IIS服务器中设置,其默认值为20分钟。也可在页面中利用该属性来设置。
例:若设置会话超时的时间为5分钟。
<% Session.TimeOut=5 %>
说明:
在设置TimeOut属性时,可根据具体需要确定数值。如果该值太小,超时会过于频繁的发生,如果该值太大,可能会消耗过多的服务器资源。
3、 Session对象的方法
Abandon方法:结束当前会话
用法:
<% Session.Abandon %>
说明:
Abandon方法用于主动结束会话,若没有调用该方法,当会话超时后,也会自动结束当前会话。
4、 Session对象的集合
Contents集合:包含一个会话建立的所有变量。
Contents集合用来确定某一个会话变量的值,或者用一个循环来检索所有会话变量的值。
语法:
Session.Contents(“变量名”)或者Session(“变量名”)


Session对象使用实例:
course.asp页面需要授权访问,在访问该页面之前,要求输入用户名和密码,并进行校验,若密码正确,则允许访问,若不正确,则输出相应的提示信息。在course.asp页面中,为防止用户直接访问,要求对访问用户是否授权进行判断,若未授权,则返回到密码校验页面。
分析:可单独设计一密码校验页面,如checkuser.htm,用以接收用户名和密码,若密码正确,则引导到course.asp页面,并设置授权标志变量为1,在course.asp页面中,通过判断授权标志变量是否为1,来决定是否允许访问。
而由上课开始的知识回顾里我们知道,脚本级变量的作用域仅限于当前页面,而此处授权标志变量需要跨页面传递数据,因此,我们需要用Session对象创建一个具有Session作用域的变量。

流程图:





验证失败,返回登陆页面


验证成功




实现代码:
checkuser.htm
<html>
<head><title>用户校验</title></head>
<body>
<form name=”checkuser” method=”post” action=”check.asp”>
用户名:<input type=”text” name=”username”><br>
密码:<input type=”password” name=”password”><br><br>
<input type=”submit” value=”确定”><input type=”reset” value=”取消”>
</form>
</body>
</html>


check.asp
<%
dim user,pass
user=Request.Form(“username”) ‘从表单中获得名称为username界面对象的值
pass=Request.Form(“password”) ‘从表单中获得名称为password界面对象的值
If pass=”okpass” and user=”okuser” Then
Session(“passflg”)=1 ‘设置授权标志
Response.Redirect “course.asp” ‘跳转到course.asp页面
Else
Session(“passflg”)=0 ‘设置未授权标志
Response.write “密码错误!<br><a href=’checkuser.htm’>返回</a>”
End if
%>

course.asp
开始处放入以下代码:
<% If Session(“passflg”)=0 Then Response.Redirect “checkuser.htm” %>
‘检测用户是否被授权,如果已授权,则显示页面,如果未授权,则跳转到登录页面checkuser.htm
【实例指导】
绝代坏坏 2006-09-04
  • 打赏
  • 举报
回复
楼上的说得比较专业
engine198473 2006-09-04
  • 打赏
  • 举报
回复
什么都能放,放的时候装箱,取的时候拆箱(强制转换)就好了
marysxj 2006-09-04
  • 打赏
  • 举报
回复
我觉得还是用反射比较好。
用Session是不是不安全啊?
robertlvqing 2006-09-04
  • 打赏
  • 举报
回复
我来接点分 一楼正解
  • 打赏
  • 举报
回复
session就是个容器,什么都能放,放的时候装箱,取的时候拆箱(强制转换)就好了。
加载更多回复(8)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧